- Package facade classes should have ACC_DEPRECATED

- Light classes for package facades should be deprecated
This commit is contained in:
Dmitry Petrov
2015-09-23 12:34:45 +03:00
parent 3cd1c222f0
commit 8595315ba5
7 changed files with 20 additions and 7 deletions
@@ -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)
}
}
}
@@ -1,3 +1,6 @@
/**
* @deprecated
*/
@java.lang.Deprecated
public final class _DefaultPackage {
@kotlin.jvm.internal.KotlinDelegatedMethod(implementationClassName = "NullableUnitReturnKt")
@@ -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")
@@ -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);
}
}