Delete deprecated enum 'values' property

This commit is contained in:
Alexander Udalov
2016-02-18 22:38:49 +03:00
parent 1eeb72e073
commit 1b8f934b54
199 changed files with 30 additions and 339 deletions
@@ -28,7 +28,8 @@ import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorFactory.*
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValueOfMethod
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesMethod
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.types.KotlinType
@@ -52,14 +53,14 @@ class LazyJavaStaticClassScope(
}
override fun getFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> {
if (jClass.isEnum()) {
if (jClass.isEnum) {
return super.getFunctionNames(kindFilter, nameFilter) + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
}
return super.getFunctionNames(kindFilter, nameFilter)
}
override fun getPropertyNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> =
memberIndex().getAllFieldNames() + (if (jClass.isEnum) listOf(DescriptorUtils.ENUM_VALUES) else emptyList())
memberIndex().getAllFieldNames()
override fun getClassNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> = listOf()
@@ -89,24 +90,17 @@ class LazyJavaStaticClassScope(
override fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>) {
val propertiesFromSupertypes = getStaticPropertiesFromJavaSupertypes(name, ownerDescriptor)
val actualProperties =
if (!result.isEmpty()) {
resolveOverridesForStaticMembers(name, propertiesFromSupertypes, result, ownerDescriptor, c.components.errorReporter)
}
else {
propertiesFromSupertypes.groupBy {
it.realOriginal
}.flatMap {
resolveOverridesForStaticMembers(name, it.value, result, ownerDescriptor, c.components.errorReporter)
}
}
result.addAll(actualProperties)
if (jClass.isEnum) {
if (name == DescriptorUtils.ENUM_VALUES) {
result.add(createEnumValuesProperty(ownerDescriptor))
}
if (result.isNotEmpty()) {
result.addAll(resolveOverridesForStaticMembers(
name, propertiesFromSupertypes, result, ownerDescriptor, c.components.errorReporter
))
}
else {
result.addAll(propertiesFromSupertypes.groupBy {
it.realOriginal
}.flatMap {
resolveOverridesForStaticMembers(name, it.value, result, ownerDescriptor, c.components.errorReporter)
})
}
}
@@ -124,7 +118,7 @@ class LazyJavaStaticClassScope(
if (staticScope !is LazyJavaStaticClassScope) return getStaticPropertiesFromJavaSupertypes(name, superTypeDescriptor)
return staticScope.getContributedVariables(name, NoLookupLocation.WHEN_GET_SUPER_MEMBERS).map { it }
return staticScope.getContributedVariables(name, NoLookupLocation.WHEN_GET_SUPER_MEMBERS)
}
return descriptor.typeConstructor.supertypes.flatMap(::getStaticProperties).toSet()
@@ -18,7 +18,6 @@
package org.jetbrains.kotlin.load.java
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES as BUILTIN_NAMES
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.getSpecialSignatureInfo
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters
@@ -31,6 +30,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.descriptorUtil.*
import org.jetbrains.kotlin.types.checker.TypeCheckingProcedure
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES as BUILTIN_NAMES
private fun FqName.child(name: String): FqName = child(Name.identifier(name))
private fun FqNameUnsafe.childSafe(name: String): FqName = child(Name.identifier(name)).toSafe()
@@ -240,13 +240,6 @@ fun <T : CallableMemberDescriptor> T.getOverriddenBuiltinReflectingJvmDescriptor
}
fun getJvmMethodNameIfSpecial(callableMemberDescriptor: CallableMemberDescriptor): String? {
if (callableMemberDescriptor.propertyIfAccessor.name == DescriptorUtils.ENUM_VALUES) {
val containingDeclaration = callableMemberDescriptor.containingDeclaration
if (callableMemberDescriptor is PropertyAccessorDescriptor
&& containingDeclaration is ClassDescriptor
&& containingDeclaration.kind == ClassKind.ENUM_CLASS) return DescriptorUtils.ENUM_VALUES.asString()
}
val overriddenBuiltin = getOverriddenBuiltinThatAffectsJvmName(callableMemberDescriptor)?.propertyIfAccessor
?: return null
return when (overriddenBuiltin) {