File tree 3 files changed +12
-3
lines changed
compiler/src/dotty/tools/dotc/transform 3 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -62,8 +62,8 @@ class LazyVals extends MiniPhase with IdentityDenotTransformer {
62
62
def transformLazyVal (tree : ValOrDefDef )(implicit ctx : Context ): Tree = {
63
63
val sym = tree.symbol
64
64
if (! (sym is Flags .Lazy ) ||
65
- sym.owner.is(Flags .Trait ) ||
66
- (sym.isStatic && sym.is(Flags .Module , butNot = Flags .Method )))
65
+ sym.owner.is(Flags .Trait ) || // val is accessor, lazy field will be implemented in subclass
66
+ (sym.isStatic && sym.is(Flags .Module , butNot = Flags .Method ))) // static module vals are implemented in the JVM by lazy loading
67
67
tree
68
68
else {
69
69
val isField = sym.owner.isClass
Original file line number Diff line number Diff line change
1
+ object Test extends App {
2
+
3
+ implicit def _1 : Long = 1L
4
+ implicit def _2 : Int = 0
5
+
6
+ println(implicitly[AnyVal ])
7
+ }
Original file line number Diff line number Diff line change @@ -3,9 +3,11 @@ trait T {
3
3
}
4
4
5
5
object Bar extends T
6
+ object Baz extends T
6
7
7
8
object Test {
8
9
def main (args : Array [String ]): Unit = {
9
- assert(Bar .Foo == Bar .Foo ) // false
10
+ assert(Bar .Foo eq Bar .Foo )
11
+ assert(Bar .Foo ne Baz .Foo )
10
12
}
11
13
}
You can’t perform that action at this time.
0 commit comments