diff --git a/compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala b/compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala index 80c6dc757aaa..374b9cbf4b5a 100644 --- a/compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala +++ b/compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala @@ -1777,7 +1777,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler given NamedTypeMethods: NamedTypeMethods with extension (self: NamedType) - def qualifier: TypeRepr = self.prefix + def qualifier: TypeRepr = self.prefix.widenSkolem def name: String = self.name.toString end extension end NamedTypeMethods diff --git a/tests/pos-macros/i13422/Macro_1.scala b/tests/pos-macros/i13422/Macro_1.scala new file mode 100644 index 000000000000..a141049523ff --- /dev/null +++ b/tests/pos-macros/i13422/Macro_1.scala @@ -0,0 +1,9 @@ +import scala.quoted._ + +inline def rule(inline r: Any): Unit = ${ ruleImpl('r) } + +def ruleImpl(r: Expr[Any])(using Quotes): Expr[Unit] = { + import quotes.reflect.* + r.asTerm.show + '{} +} diff --git a/tests/pos-macros/i13422/Test_2.scala b/tests/pos-macros/i13422/Test_2.scala new file mode 100644 index 000000000000..f6595825516a --- /dev/null +++ b/tests/pos-macros/i13422/Test_2.scala @@ -0,0 +1,12 @@ +def test = rule { + foo(bar(baz)) +} + +def foo[I](r: I): Nothing = ??? + +def bar(i: Baz): i.Out = ??? + +sealed trait Baz: + type Out = Nothing match { case Nothing => Nothing } + +def baz: Baz = ???