Skip to content

Commit 5f12e6b

Browse files
committed
Record used name for packages
1 parent 39166de commit 5f12e6b

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

compiler/src/dotty/tools/dotc/sbt/ExtractDependencies.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,12 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
295295
val fromClass = resolveDependencySource
296296
if (fromClass.exists) { // can happen when visiting imports
297297
assert(fromClass.isClass)
298-
_dependencies += ClassDependency(fromClass, enclOrModuleClass, DependencyByMemberRef)
298+
299299
addUsedName(fromClass, mangledName(sym), UseScope.Default)
300+
// packages have class symbol. Only record them as used names but bot dependency
301+
if (!sym.is(Package)) {
302+
_dependencies += ClassDependency(fromClass, enclOrModuleClass, DependencyByMemberRef)
303+
}
300304
}
301305
}
302306

@@ -315,7 +319,6 @@ private class ExtractDependenciesCollector extends tpd.TreeTraverser { thisTreeT
315319
!sym.exists ||
316320
sym.unforcedIsAbsent || // ignore dependencies that have a symbol but do not exist.
317321
// e.g. java.lang.Object companion object
318-
sym.is(Package) ||
319322
sym.isEffectiveRoot ||
320323
sym.isAnonymousFunction ||
321324
sym.isAnonymousClass

sbt-bridge/test/xsbt/ExtractUsedNamesSpecification.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class ExtractUsedNamesSpecification {
1515
|}""".stripMargin
1616
val compilerForTesting = new ScalaCompilerForUnitTesting
1717
val usedNames = compilerForTesting.extractUsedNamesFromSrc(src)
18-
val expectedNames = standardNames ++ Set("A", "A2")
18+
val expectedNames = standardNames ++ Set("a", "A", "A2", "b")
1919
// names used at top level are attributed to the first class defined in a compilation unit
2020

2121
assertEquals(expectedNames, usedNames("a.A"))
@@ -43,7 +43,7 @@ class ExtractUsedNamesSpecification {
4343
|}""".stripMargin
4444
val compilerForTesting = new ScalaCompilerForUnitTesting
4545
val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB)
46-
val expectedNames = standardNames ++ Set("A", "B", "C", "D", "BB")
46+
val expectedNames = standardNames ++ Set("a", "c", "A", "B", "C", "D", "b", "BB")
4747
assertEquals(expectedNames, usedNames("b.X"))
4848
}
4949

@@ -286,7 +286,8 @@ class ExtractUsedNamesSpecification {
286286
val compilerForTesting = new ScalaCompilerForUnitTesting
287287
val usedNames = compilerForTesting.extractUsedNamesFromSrc(src)
288288

289-
assertEquals(standardNames + "List", usedNames("Test"))
289+
val expectedNames = standardNames ++ Set("java", "util", "List")
290+
assertEquals(expectedNames, usedNames("Test"))
290291
}
291292

292293
/**

0 commit comments

Comments
 (0)