Skip to content

Commit bcd6e14

Browse files
committed
fix #11175: consider terms in inventTypeName
1 parent cc8ffb1 commit bcd6e14

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

compiler/src/dotty/tools/dotc/ast/Desugar.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,9 @@ object desugar {
992992
if (x.isEmpty)
993993
tree match {
994994
case Select(pre, nme.CONSTRUCTOR) => foldOver(x, pre)
995-
case tree: RefTree if tree.name.isTypeName => tree.name.toString
995+
case tree: RefTree =>
996+
if tree.name.isTypeName then tree.name.toString
997+
else s"${tree.name}_type"
996998
case tree: TypeDef => tree.name.toString
997999
case tree: AppliedTypeTree if followArgs && tree.args.nonEmpty =>
9981000
s"${apply(x, tree.tpt)}_${extractArgs(tree.args)}"

tests/pos/i11175.scala

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package x
2+
3+
trait Printer[T]:
4+
def print(t:T):String
5+
6+
extension[T](t:T)(using Printer[T])
7+
def print():String = summon[Printer[T]].print(t)
8+
9+
object A
10+
11+
object B
12+
13+
given Printer[A.type] with
14+
def print(a:A.type):String = "a"
15+
16+
given Printer[B.type] with
17+
def print(b:B.type):String = "b"
18+
19+
20+
object Main {
21+
22+
def main(args:Array[String]):Unit =
23+
System.out.println(B.print())
24+
25+
}

0 commit comments

Comments
 (0)