File tree 3 files changed +32
-2
lines changed
compiler/src/dotty/tools/dotc/transform
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 {
27
27
override def transformIdent (tree : tpd.Ident )(implicit ctx : Context , info : TransformerInfo ): tpd.Tree = {
28
28
if (ctx.owner.enclosingMethod.is(JavaStatic )) {
29
29
tree.tpe match {
30
- case TermRef (thiz : ThisType , _) if thiz.cls.is(ModuleClass ) =>
30
+ case TermRef (thiz : ThisType , _) if thiz.cls.is(ModuleClass , JavaDefined ) =>
31
31
ref(thiz.cls.sourceModule).select(tree.symbol)
32
32
case TermRef (thiz : ThisType , _) =>
33
- assert(tree.symbol.is(Flags .JavaStatic ))
33
+ assert(tree.symbol.is(Flags .JavaStatic ) || thiz.cls.is( JavaDefined ) )
34
34
tree
35
35
case _ => tree
36
36
}
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