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