File tree Expand file tree Collapse file tree 3 files changed +32
-2
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 3 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -27,10 +27,10 @@ class ElimStaticThis extends MiniPhaseTransform {
2727 override def transformIdent (tree : tpd.Ident )(implicit ctx : Context , info : TransformerInfo ): tpd.Tree = {
2828 if (ctx.owner.enclosingMethod.is(JavaStatic )) {
2929 tree.tpe match {
30- case TermRef (thiz : ThisType , _) if thiz.cls.is(ModuleClass ) =>
30+ case TermRef (thiz : ThisType , _) if thiz.cls.is(ModuleClass , JavaDefined ) =>
3131 ref(thiz.cls.sourceModule).select(tree.symbol)
3232 case TermRef (thiz : ThisType , _) =>
33- assert(tree.symbol.is(Flags .JavaStatic ))
33+ assert(tree.symbol.is(Flags .JavaStatic ) || thiz.cls.is( JavaDefined ) )
3434 tree
3535 case _ => tree
3636 }
Original file line number Diff line number Diff line change 1+ class B {
2+ val buzz = Some (Bees .Bee (" buzz" )).collect {
3+ case Bees .Bee (value) => value
4+ }
5+ }
6+
7+ object Test {
8+ def main (args : Array [String ]): Unit = {
9+ new B
10+ }
11+ }
12+
13+ object Bees {
14+ case class Bee (value : String )
15+ }
Original file line number Diff line number Diff line change 1+ class Bees {
2+ import Test ._
3+
4+ def f : PartialFunction [Bee , Unit ] = {
5+ case Test .Bee (_) => " "
6+ // case Bee(_) => "" // This one works
7+ }
8+
9+ f(new Bee (" buzz" ))
10+ }
11+
12+ object Test {
13+ case class Bee (value : String )
14+ def main (args : Array [String ]): Unit = new Bees
15+ }
You can’t perform that action at this time.
0 commit comments