File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 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 =>
694694 enterSymbol(classConstructorCompanion(classSym.asClass))
695695 else
696696 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`)
697703 if moduleSym.lastKnownDenotation.is(Module ) && ! moduleSym.isDefinedInCurrentRun then
698704 val companion =
699705 if needsConstructorProxies(classSym) then
You can’t perform that action at this time.
0 commit comments