File tree Expand file tree Collapse file tree 2 files changed +19
-5
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 2 files changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -48,11 +48,12 @@ class ResolveSuper extends MiniPhase with IdentityDenotTransformer { thisPhase =
48
48
import ops ._
49
49
50
50
def superAccessors (mixin : ClassSymbol ): List [Tree ] =
51
- for (superAcc <- mixin.info.decls.filter(_.isSuperAccessor))
52
- yield {
53
- util.Stats .record(" super accessors" )
54
- DefDef (mkForwarderSym(superAcc.asTerm), forwarderRhsFn(rebindSuper(cls, superAcc)))
55
- }
51
+ for superAcc <- mixin.info.decls.filter(_.isSuperAccessor)
52
+ yield
53
+ util.Stats .record(" super accessors" )
54
+ val fwd = mkForwarderSym(superAcc.asTerm)
55
+ DefDef (fwd, forwarderRhsFn(rebindSuper(cls, superAcc))
56
+ .andThen(_.etaExpandCFT(using ctx.withOwner(fwd))))
56
57
57
58
val overrides = mixins.flatMap(superAccessors)
58
59
Original file line number Diff line number Diff line change
1
+ trait Foo :
2
+ def foo : String ?=> Int =
3
+ summon[String ].length
4
+
5
+ trait Bar extends Foo :
6
+ override def foo =
7
+ super .foo
8
+
9
+ class Baz extends Bar
10
+
11
+ @ main def Test =
12
+ given String = " hello"
13
+ assert(Baz ().foo == 5 )
You can’t perform that action at this time.
0 commit comments