Skip to content

Commit 668e9a5

Browse files
authored
Merge pull request #11422 from dotty-staging/fix-11420
Handle creator applications in nested companion objects
2 parents 7e1def2 + e161927 commit 668e9a5

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3696,8 +3696,12 @@ class Typer extends Namer
36963696
val Select(qual, nme.apply) = tree; @unchecked
36973697
val tycon = tree.tpe.widen.finalResultType.underlyingClassRef(refinementOK = false)
36983698
val tpt = qual match
3699-
case Ident(name) => cpy.Ident(qual)(name.toTypeName)
3700-
case Select(pre, name) => cpy.Select(qual)(pre, name.toTypeName)
3699+
case Ident(name) =>
3700+
cpy.Ident(qual)(name.toTypeName)
3701+
case Select(pre, name) =>
3702+
cpy.Select(qual)(pre, name.toTypeName)
3703+
case qual: This if qual.symbol.is(ModuleClass) =>
3704+
cpy.Ident(qual)(qual.symbol.name.sourceModuleName.toTypeName)
37013705
typed(
37023706
untpd.Select(
37033707
untpd.New(untpd.TypedSplice(tpt.withType(tycon))),

tests/pos/i11420.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Foo {
2+
class Bar(i: Int)
3+
4+
object Bar {
5+
def zero = Bar(0)
6+
}
7+
}

0 commit comments

Comments
 (0)