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 =
4848 import ops ._
4949
5050 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))))
5657
5758 val overrides = mixins.flatMap(superAccessors)
5859
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