[KAPT] Warn about usage of types from default package

Java doesn't support import from default package. 
We can't fix it, so we warn about it.
#KT-36743
This commit is contained in:
Andrey Zinovyev
2021-02-09 13:32:27 +03:00
committed by GitHub
parent 58d903c638
commit 10cc86c975
11 changed files with 386 additions and 33 deletions
@@ -0,0 +1,45 @@
// STRICT
//FILE: test/ClassRefAnnotation.java
package test;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ClassRefAnnotation {
Class<?>[] value();
}
//FILE: a.kt
class RootClass
class AnotherRootClass
//FILE: b.kt
package test
import java.lang.Number as JavaNumber
import RootClass
import AnotherRootClass as Arc
interface PackedClass {
fun someMethod(): RootClass
fun otherMethod(): JavaNumber
fun oneMoreMethod(): Arc
}
@ClassRefAnnotation(RootClass::class)
class PackedWithAnnotation
// EXPECTED_ERROR(kotlin:11:5) cannot find symbol
// EXPECTED_ERROR(kotlin:14:1) cannot find symbol
// EXPECTED_ERROR(kotlin:9:5) cannot find symbol
// EXPECTED_ERROR(other:-1:-1) test.PackedClass: Can't reference type 'RootClass' from default package in Java stub.
// EXPECTED_ERROR(other:-1:-1) test.PackedClass: Can't reference type 'AnotherRootClass' from default package in Java stub.
// EXPECTED_ERROR(other:-1:-1) test.PackedWithAnnotation: Can't reference type 'RootClass' from default package in Java stub.