File tree 1 file changed +6
-0
lines changed
compiler/src/dotty/tools/dotc/typer
1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -694,6 +694,12 @@ class Namer { typer: Typer =>
694
694
enterSymbol(classConstructorCompanion(classSym.asClass))
695
695
else
696
696
for moduleSym <- companionVals do
697
+ // by not going through `.lastKnownDenotation` (instead using `.current`),
698
+ // we guarantee that the `moduleSym` will be brought forward to the current run,
699
+ // rendering `moduleSym.isDefinedInCurrentRun` as always true.
700
+ // We want to regenerate the companion instead of bringing it forward,
701
+ // as even if we are able to bring forward the object symbol,
702
+ // we might not be able to do the same with its stale module class symbol (see `tests/pos/i20449`)
697
703
if moduleSym.lastKnownDenotation.is(Module ) && ! moduleSym.isDefinedInCurrentRun then
698
704
val companion =
699
705
if needsConstructorProxies(classSym) then
You can’t perform that action at this time.
0 commit comments