Skip to content

Commit 9228644

Browse files
committed
Set zero span for synthetic enum import selector
Fixes #11683
1 parent 594043f commit 9228644

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,14 @@ object desugar {
520520
enumCases.last.pushAttachment(DesugarEnums.DefinesEnumLookupMethods, ())
521521
val enumCompanionRef = TermRefTree()
522522
val enumImport =
523-
Import(enumCompanionRef, enumCases.flatMap(caseIds).map(ImportSelector(_)))
523+
Import(enumCompanionRef, enumCases.flatMap(caseIds).map{
524+
enumCase =>
525+
val zeroSpan = if enumCase.span.exists then
526+
enumCase.span.endPos
527+
else
528+
enumCase.span
529+
ImportSelector(enumCase.withSpan(zeroSpan)).withSpan(zeroSpan)
530+
})
524531
(enumImport :: enumStats, enumCases, enumCompanionRef)
525532
}
526533
else (stats, Nil, EmptyTree)

language-server/test/dotty/tools/languageserver/HoverTest.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,13 @@ class HoverTest {
213213
// sp the top-level definitions should be enclosed in an object called `Source0$package`.
214214
.hover(m1 to m2, hoverContent("(hello.Source0$package : hello.Source0$package.type)"))
215215
}
216+
217+
@Test def enumsRepeated: Unit = {
218+
code"""|package example
219+
|object SimpleEnum:
220+
| enum Color:
221+
| case ${m1}Red${m2}, Green, Blue
222+
|""".withSource
223+
.hover(m1 to m2, hoverContent("example.SimpleEnum.Color"))
224+
}
216225
}

0 commit comments

Comments
 (0)