- Package facade classes should have ACC_DEPRECATED
- Light classes for package facades should be deprecated
This commit is contained in:
@@ -112,7 +112,7 @@ public class PackageCodegen {
|
||||
packageClassType, PackagePartClassUtils.getFilesWithCallables(files)
|
||||
);
|
||||
v.defineClass(sourceFile, V1_6,
|
||||
ACC_PUBLIC | ACC_FINAL,
|
||||
ACC_PUBLIC | ACC_FINAL | ACC_DEPRECATED,
|
||||
packageClassType.getInternalName(),
|
||||
null,
|
||||
"java/lang/Object",
|
||||
|
||||
@@ -42,7 +42,8 @@ public class KotlinLightClassForFacade private constructor(
|
||||
private val facadeClassFqName: FqName,
|
||||
private val searchScope: GlobalSearchScope,
|
||||
private val lightClassDataCache: CachedValue<KotlinFacadeLightClassData>,
|
||||
files: Collection<JetFile>
|
||||
files: Collection<JetFile>,
|
||||
private val deprecated: Boolean
|
||||
) : KotlinWrappingLightClass(manager), JetJavaMirrorMarker {
|
||||
|
||||
private data class StubCacheKey(val fqName: FqName, val searchScope: GlobalSearchScope)
|
||||
@@ -127,7 +128,7 @@ public class KotlinLightClassForFacade private constructor(
|
||||
|
||||
override fun hasModifierProperty(@NonNls name: String) = modifierList.hasModifierProperty(name)
|
||||
|
||||
override fun isDeprecated() = false
|
||||
override fun isDeprecated() = deprecated
|
||||
|
||||
override fun isInterface() = false
|
||||
|
||||
@@ -186,7 +187,7 @@ public class KotlinLightClassForFacade private constructor(
|
||||
|
||||
override fun isValid() = files.all { it.isValid() }
|
||||
|
||||
override fun copy() = KotlinLightClassForFacade(getManager(), facadeClassFqName, searchScope, lightClassDataCache, files)
|
||||
override fun copy() = KotlinLightClassForFacade(getManager(), facadeClassFqName, searchScope, lightClassDataCache, files, deprecated)
|
||||
|
||||
override fun getDelegate(): PsiClass {
|
||||
val psiClass = LightClassUtil.findClass(facadeClassFqName, lightClassDataCache.getValue().javaFileStub)
|
||||
@@ -251,7 +252,7 @@ public class KotlinLightClassForFacade private constructor(
|
||||
|
||||
val packageClassFqName = PackageClassUtils.getPackageClassFqName(packageFqName)
|
||||
val lightClassDataCache = PackageFacadeStubCache.getInstance(manager.project).get(packageFqName, searchScope)
|
||||
return KotlinLightClassForFacade(manager, packageClassFqName, searchScope, lightClassDataCache, files)
|
||||
return KotlinLightClassForFacade(manager, packageClassFqName, searchScope, lightClassDataCache, files, true)
|
||||
}
|
||||
|
||||
public fun createForFacade(
|
||||
@@ -267,7 +268,7 @@ public class KotlinLightClassForFacade private constructor(
|
||||
assert(files.isNotEmpty()) { "No files for facade $facadeClassFqName" }
|
||||
|
||||
val lightClassDataCache = FacadeStubCache.getInstance(manager.project).get(facadeClassFqName, searchScope)
|
||||
return KotlinLightClassForFacade(manager, facadeClassFqName, searchScope, lightClassDataCache, files)
|
||||
return KotlinLightClassForFacade(manager, facadeClassFqName, searchScope, lightClassDataCache, files, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@java.lang.Deprecated
|
||||
public final class _DefaultPackage {
|
||||
@kotlin.jvm.internal.KotlinDelegatedMethod(implementationClassName = "NullableUnitReturnKt")
|
||||
|
||||
+3
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@java.lang.Deprecated
|
||||
public final class _DefaultPackage {
|
||||
@kotlin.jvm.internal.KotlinDelegatedMethod(implementationClassName = "UnitParameterKt")
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@java.lang.Deprecated
|
||||
public final class _DefaultPackage {
|
||||
@kotlin.jvm.internal.KotlinDelegatedMethod(implementationClassName = "VoidReturnKt")
|
||||
|
||||
+3
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@java.lang.Deprecated
|
||||
public final class _DefaultPackage {
|
||||
@kotlin.jvm.internal.KotlinDelegatedMethod(implementationClassName = "_DefaultPackageKt")
|
||||
|
||||
@@ -163,7 +163,7 @@ public abstract class KotlinLightClassStructureTest extends KotlinAsJavaTestBase
|
||||
}
|
||||
|
||||
public void testPackage() throws Exception {
|
||||
checkModifiers("test.TestPackage", PUBLIC, FINAL);
|
||||
checkModifiers("test.TestPackage", PUBLIC, FINAL, DEPRECATED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user