diff --git a/compiler/src/dotty/tools/dotc/transform/init/Summarization.scala b/compiler/src/dotty/tools/dotc/transform/init/Summarization.scala index ca797ac81f53..82293c63452e 100644 --- a/compiler/src/dotty/tools/dotc/transform/init/Summarization.scala +++ b/compiler/src/dotty/tools/dotc/transform/init/Summarization.scala @@ -309,7 +309,7 @@ object Summarization { if (cls == defn.AnyClass || cls == defn.AnyValClass) Effects.empty else { val ctor = cls.primaryConstructor - Summarization.analyze(tref.prefix, ref)._2 + + Summarization.analyze(New(ref.tpe))(env.withOwner(ctor.owner))._2 + MethodCall(ThisRef()(ref), ctor)(ref) } }) diff --git a/tests/init/crash/i9670.scala b/tests/init/crash/i9670.scala new file mode 100644 index 000000000000..82a055ec7203 --- /dev/null +++ b/tests/init/crash/i9670.scala @@ -0,0 +1,9 @@ +object Outer { + def foo = { + trait Mixin + class E extends Mixin + object SomeObject { + val A = E() + } + } +}