diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala index 920871210eee..c6995cbac6b7 100644 --- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala +++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala @@ -520,7 +520,11 @@ object desugar { enumCases.last.pushAttachment(DesugarEnums.DefinesEnumLookupMethods, ()) val enumCompanionRef = TermRefTree() val enumImport = - Import(enumCompanionRef, enumCases.flatMap(caseIds).map(ImportSelector(_))) + Import(enumCompanionRef, enumCases.flatMap(caseIds).map( + enumCase => + ImportSelector(enumCase.withSpan(enumCase.span.startPos)) + ) + ) (enumImport :: enumStats, enumCases, enumCompanionRef) } else (stats, Nil, EmptyTree) diff --git a/language-server/test/dotty/tools/languageserver/HoverTest.scala b/language-server/test/dotty/tools/languageserver/HoverTest.scala index 4309b0aeeea0..868134d6ea21 100644 --- a/language-server/test/dotty/tools/languageserver/HoverTest.scala +++ b/language-server/test/dotty/tools/languageserver/HoverTest.scala @@ -213,4 +213,13 @@ class HoverTest { // sp the top-level definitions should be enclosed in an object called `Source0$package`. .hover(m1 to m2, hoverContent("(hello.Source0$package : hello.Source0$package.type)")) } + + @Test def enumsRepeated: Unit = { + code"""|package example + |object SimpleEnum: + | enum Color: + | case ${m1}Red${m2}, Green, Blue + |""".withSource + .hover(m1 to m2, hoverContent("example.SimpleEnum.Color")) + } }