[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:
@@ -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.
|
||||
Reference in New Issue
Block a user