Minor, add DescriptorUtils.isClassOrEnumClass
This commit is contained in:
@@ -90,10 +90,9 @@ public fun findImplementationFromInterface(descriptor: CallableMemberDescriptor)
|
||||
val overridden = OverrideResolver.getOverriddenDeclarations(descriptor)
|
||||
val filtered = OverrideResolver.filterOutOverridden(overridden)
|
||||
|
||||
val result = filtered.firstOrNull { it.getModality() != Modality.ABSTRACT } ?: return null
|
||||
val result = filtered.firstOrNull { it.modality != Modality.ABSTRACT } ?: return null
|
||||
|
||||
val container = result.getContainingDeclaration()
|
||||
if (DescriptorUtils.isClass(container) || DescriptorUtils.isEnumClass(container)) return null
|
||||
if (DescriptorUtils.isClassOrEnumClass(result.containingDeclaration)) return null
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -65,7 +65,6 @@ import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface;
|
||||
import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.KOTLIN_SYNTHETIC_CLASS;
|
||||
import static org.jetbrains.kotlin.resolve.DescriptorUtils.*;
|
||||
import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.*;
|
||||
import static org.jetbrains.kotlin.resolve.jvm.annotations.AnnotationUtilKt.hasJvmFieldAnnotation;
|
||||
import static org.jetbrains.kotlin.types.TypeUtils.isNullableType;
|
||||
import static org.jetbrains.org.objectweb.asm.Opcodes.*;
|
||||
|
||||
@@ -542,7 +541,7 @@ public class AsmUtil {
|
||||
if (opToken == KtTokens.EXCLEQ || opToken == KtTokens.EXCLEQEQEQ) {
|
||||
genInvertBoolean(v);
|
||||
}
|
||||
return Unit.INSTANCE$;
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -728,8 +727,7 @@ public class AsmUtil {
|
||||
}
|
||||
|
||||
public static boolean isCompanionObjectWithBackingFieldsInOuter(@NotNull DeclarationDescriptor companionObject) {
|
||||
DeclarationDescriptor containingClass = companionObject.getContainingDeclaration();
|
||||
return isCompanionObject(companionObject) && (isClass(containingClass) || isEnumClass(containingClass));
|
||||
return isCompanionObject(companionObject) && isClassOrEnumClass(companionObject.getContainingDeclaration());
|
||||
}
|
||||
|
||||
private static boolean areBothAccessorDefault(@NotNull PropertyDescriptor propertyDescriptor) {
|
||||
|
||||
+2
-2
@@ -69,11 +69,11 @@ public class PlatformStaticAnnotationChecker : DeclarationChecker {
|
||||
descriptor: DeclarationDescriptor,
|
||||
diagnosticHolder: DiagnosticSink
|
||||
) {
|
||||
val container = descriptor.getContainingDeclaration()
|
||||
val container = descriptor.containingDeclaration
|
||||
val insideObject = container != null && DescriptorUtils.isNonCompanionObject(container)
|
||||
val insideCompanionObjectInClass =
|
||||
container != null && DescriptorUtils.isCompanionObject(container) &&
|
||||
container.getContainingDeclaration().let { DescriptorUtils.isClass(it) || DescriptorUtils.isEnumClass(it) }
|
||||
DescriptorUtils.isClassOrEnumClass(container.containingDeclaration)
|
||||
|
||||
if (!insideObject && !insideCompanionObjectInClass) {
|
||||
diagnosticHolder.report(ErrorsJvm.JVM_STATIC_NOT_IN_OBJECT.on(declaration))
|
||||
|
||||
@@ -36,7 +36,7 @@ public fun DeclarationDescriptor.hasJvmSyntheticAnnotation(): Boolean {
|
||||
}
|
||||
|
||||
public fun CallableDescriptor.isPlatformStaticInObjectOrClass(): Boolean =
|
||||
isPlatformStaticIn { DescriptorUtils.isNonCompanionObject(it) || DescriptorUtils.isClass(it) || DescriptorUtils.isEnumClass(it) }
|
||||
isPlatformStaticIn { DescriptorUtils.isNonCompanionObject(it) || DescriptorUtils.isClassOrEnumClass(it) }
|
||||
|
||||
public fun CallableDescriptor.isPlatformStaticInCompanionObject(): Boolean =
|
||||
isPlatformStaticIn { DescriptorUtils.isCompanionObject(it) }
|
||||
|
||||
Reference in New Issue
Block a user