Make default package name an empty string
diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt
index 21a902f..3116b09 100644
--- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt
+++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt
@@ -26,12 +26,17 @@
val result = mutableListOf<String>()
override fun toResult(): List<String> {
- return result
+ return result.sorted()
}
override fun process(resolver: Resolver): List<KSAnnotated> {
val visitor = NameCollector()
resolver.getNewFiles().forEach{ it.accept(visitor, result) }
+ listOf("K1", "J1").mapNotNull {
+ resolver.getClassDeclarationByName(resolver.getKSNameFromString(it))
+ }.forEach {
+ it.accept(visitor, result)
+ }
return emptyList()
}
}
diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/java/KSFileJavaImpl.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/java/KSFileJavaImpl.kt
index 23ba7af..f445af9 100644
--- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/java/KSFileJavaImpl.kt
+++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/java/KSFileJavaImpl.kt
@@ -50,7 +50,7 @@
psi.virtualFile.path
}
- override val packageName: KSName = KSNameImpl.getCached(if (psi.packageName == "") "<root>" else psi.packageName)
+ override val packageName: KSName = KSNameImpl.getCached(psi.packageName)
override fun <D, R> accept(visitor: KSVisitor<D, R>, data: D): R {
return visitor.visitFile(this, data)
diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSFileImpl.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSFileImpl.kt
index 9b417d0..3a05ca3 100644
--- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSFileImpl.kt
+++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSFileImpl.kt
@@ -37,7 +37,7 @@
}
override val packageName: KSName by lazy {
- KSNameImpl.getCached(file.packageFqName.toString())
+ KSNameImpl.getCached(file.packageFqName.asString())
}
override val annotations: Sequence<KSAnnotation> by lazy {
diff --git a/compiler-plugin/testData/api/declarationPackageName.kt b/compiler-plugin/testData/api/declarationPackageName.kt
index 49e4fa5..bf3df55 100644
--- a/compiler-plugin/testData/api/declarationPackageName.kt
+++ b/compiler-plugin/testData/api/declarationPackageName.kt
@@ -17,29 +17,54 @@
// TEST PROCESSOR: DeclarationPackageNameProcessor
// EXPECTED:
-// test.pack:Outer
-// test.pack:Val
-// test.pack:Outer.Foo
-// test.pack:Inner
-// test.pack:innerVal
-// test.pack:Inner.innerFoo
-// test.pack:InnerLocal
-// test.pack:InnerLocal.<init>
-// test.pack:Inner.<init>
-// test.pack:Nested
-// test.pack:nestedVal
-// test.pack:Nested.nestedFoo
-// test.pack:a
-// test.pack:Nested.<init>
-// test.pack:Outer.<init>
+// <no name>:J1
+// <no name>:J1.<init>
+// <no name>:J2
+// <no name>:J2.<init>
+// <no name>:K1
+// <no name>:K1.<init>
+// <no name>:K2
+// <no name>:K2.<init>
// test.java.pack:C
+// test.java.pack:C.<init>
// test.java.pack:Inner
// test.java.pack:Inner.<init>
// test.java.pack:Nested
// test.java.pack:Nested.<init>
-// test.java.pack:C.<init>
+// test.pack:Inner
+// test.pack:Inner.<init>
+// test.pack:Inner.innerFoo
+// test.pack:InnerLocal
+// test.pack:InnerLocal.<init>
+// test.pack:Nested
+// test.pack:Nested.<init>
+// test.pack:Nested.nestedFoo
+// test.pack:Outer
+// test.pack:Outer.<init>
+// test.pack:Outer.Foo
+// test.pack:Val
+// test.pack:a
+// test.pack:innerVal
+// test.pack:nestedVal
// END
-//FILE: a.kt
+
+// MODULE: module1
+// FILE: K1.kt
+class K1
+
+// FILE: J1.java
+class J1 {
+}
+
+// MODULE: main(module1)
+// FILE: K2.kt
+class K2
+
+// FILE: J2.java
+class J2 {
+}
+
+// FILE: a.kt
package test.pack
class Outer {