Minor. Rename isTrait -> isInterface

This commit is contained in:
Denis Zharkov
2015-09-24 18:51:58 +03:00
parent 6061528f7f
commit b2d4bdc802
16 changed files with 27 additions and 28 deletions
@@ -56,7 +56,7 @@ private data class DescriptorBasedFunctionHandle(val descriptor: FunctionDescrip
override val isAbstract: Boolean = override val isAbstract: Boolean =
descriptor.getModality() == Modality.ABSTRACT || descriptor.getModality() == Modality.ABSTRACT ||
DescriptorUtils.isTrait(descriptor.getContainingDeclaration()) DescriptorUtils.isInterface(descriptor.getContainingDeclaration())
override fun getOverridden() = overridden override fun getOverridden() = overridden
} }
@@ -74,7 +74,7 @@ public fun findTraitImplementation(descriptor: CallableMemberDescriptor): Callab
val implementation = findImplementationFromInterface(descriptor) ?: return null val implementation = findImplementationFromInterface(descriptor) ?: return null
val immediateConcreteSuper = firstSuperMethodFromKotlin(descriptor, implementation) ?: return null val immediateConcreteSuper = firstSuperMethodFromKotlin(descriptor, implementation) ?: return null
if (!DescriptorUtils.isTrait(immediateConcreteSuper.getContainingDeclaration())) { if (!DescriptorUtils.isInterface(immediateConcreteSuper.getContainingDeclaration())) {
// If this implementation is already generated into the superclass, we need not generate it again, it'll be inherited // If this implementation is already generated into the superclass, we need not generate it again, it'll be inherited
return null return null
} }
@@ -778,7 +778,7 @@ public class AsmUtil {
DeclarationDescriptor propertyContainer = propertyDescriptor.getContainingDeclaration(); DeclarationDescriptor propertyContainer = propertyDescriptor.getContainingDeclaration();
return !propertyDescriptor.isVar() return !propertyDescriptor.isVar()
&& !isExtensionProperty && !isExtensionProperty
&& isCompanionObject(propertyContainer) && isTrait(propertyContainer.getContainingDeclaration()) && isCompanionObject(propertyContainer) && isInterface(propertyContainer.getContainingDeclaration())
&& areBothAccessorDefault(propertyDescriptor) && areBothAccessorDefault(propertyDescriptor)
&& getVisibilityForSpecialPropertyBackingField(propertyDescriptor, false) == ACC_PUBLIC; && getVisibilityForSpecialPropertyBackingField(propertyDescriptor, false) == ACC_PUBLIC;
} }
@@ -66,7 +66,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen<JetClassOrObject> {
} }
} }
if (!DescriptorUtils.isTrait(descriptor)) { if (!DescriptorUtils.isInterface(descriptor)) {
for (DeclarationDescriptor memberDescriptor : descriptor.getDefaultType().getMemberScope().getAllDescriptors()) { for (DeclarationDescriptor memberDescriptor : descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
if (memberDescriptor instanceof FunctionDescriptor) { if (memberDescriptor instanceof FunctionDescriptor) {
FunctionDescriptor member = (FunctionDescriptor) memberDescriptor; FunctionDescriptor member = (FunctionDescriptor) memberDescriptor;
@@ -109,7 +109,7 @@ public class ClosureCodegen extends MemberCodegen<JetElement> {
JetType superClassType = null; JetType superClassType = null;
for (JetType supertype : classDescriptor.getTypeConstructor().getSupertypes()) { for (JetType supertype : classDescriptor.getTypeConstructor().getSupertypes()) {
ClassifierDescriptor classifier = supertype.getConstructor().getDeclarationDescriptor(); ClassifierDescriptor classifier = supertype.getConstructor().getDeclarationDescriptor();
if (DescriptorUtils.isTrait(classifier)) { if (DescriptorUtils.isInterface(classifier)) {
superInterfaceTypes.add(supertype); superInterfaceTypes.add(supertype);
} }
else { else {
@@ -142,7 +142,7 @@ public class FunctionCodegen {
@NotNull FunctionGenerationStrategy strategy @NotNull FunctionGenerationStrategy strategy
) { ) {
OwnerKind contextKind = methodContext.getContextKind(); OwnerKind contextKind = methodContext.getContextKind();
if (isTrait(functionDescriptor.getContainingDeclaration()) && if (isInterface(functionDescriptor.getContainingDeclaration()) &&
functionDescriptor.getVisibility() == Visibilities.PRIVATE && functionDescriptor.getVisibility() == Visibilities.PRIVATE &&
contextKind != OwnerKind.DEFAULT_IMPLS) { contextKind != OwnerKind.DEFAULT_IMPLS) {
return; return;
@@ -505,7 +505,7 @@ public class FunctionCodegen {
public void generateBridges(@NotNull FunctionDescriptor descriptor) { public void generateBridges(@NotNull FunctionDescriptor descriptor) {
if (descriptor instanceof ConstructorDescriptor) return; if (descriptor instanceof ConstructorDescriptor) return;
if (owner.getContextKind() == OwnerKind.DEFAULT_IMPLS) return; if (owner.getContextKind() == OwnerKind.DEFAULT_IMPLS) return;
if (isTrait(descriptor.getContainingDeclaration())) return; if (isInterface(descriptor.getContainingDeclaration())) return;
// equals(Any?), hashCode(), toString() never need bridges // equals(Any?), hashCode(), toString() never need bridges
if (isMethodOfAny(descriptor)) return; if (isMethodOfAny(descriptor)) return;
@@ -585,7 +585,7 @@ public class FunctionCodegen {
) { ) {
DeclarationDescriptor contextClass = owner.getContextDescriptor().getContainingDeclaration(); DeclarationDescriptor contextClass = owner.getContextDescriptor().getContainingDeclaration();
if (kind != OwnerKind.DEFAULT_IMPLS && isTrait(contextClass)) { if (kind != OwnerKind.DEFAULT_IMPLS && isInterface(contextClass)) {
return; return;
} }
@@ -1035,7 +1035,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
} }
private void generatePrimaryConstructor(final DelegationFieldsInfo delegationFieldsInfo) { private void generatePrimaryConstructor(final DelegationFieldsInfo delegationFieldsInfo) {
if (isTrait(descriptor) || isAnnotationClass(descriptor)) return; if (isInterface(descriptor) || isAnnotationClass(descriptor)) return;
ConstructorDescriptor constructorDescriptor = descriptor.getUnsubstitutedPrimaryConstructor(); ConstructorDescriptor constructorDescriptor = descriptor.getUnsubstitutedPrimaryConstructor();
if (constructorDescriptor == null) return; if (constructorDescriptor == null) return;
@@ -1393,7 +1393,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
} }
private void generateTraitMethods() { private void generateTraitMethods() {
if (isTrait(descriptor)) return; if (isInterface(descriptor)) return;
for (Map.Entry<FunctionDescriptor, FunctionDescriptor> entry : CodegenUtil.getTraitMethods(descriptor).entrySet()) { for (Map.Entry<FunctionDescriptor, FunctionDescriptor> entry : CodegenUtil.getTraitMethods(descriptor).entrySet()) {
FunctionDescriptor traitFun = entry.getKey(); FunctionDescriptor traitFun = entry.getKey();
@@ -1412,7 +1412,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
@Override @Override
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) { public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
DeclarationDescriptor containingDeclaration = traitFun.getContainingDeclaration(); DeclarationDescriptor containingDeclaration = traitFun.getContainingDeclaration();
if (!DescriptorUtils.isTrait(containingDeclaration)) return; if (!DescriptorUtils.isInterface(containingDeclaration)) return;
DeclarationDescriptor declarationInheritedFun = inheritedFun.getContainingDeclaration(); DeclarationDescriptor declarationInheritedFun = inheritedFun.getContainingDeclaration();
PsiElement classForInheritedFun = descriptorToDeclaration(declarationInheritedFun); PsiElement classForInheritedFun = descriptorToDeclaration(declarationInheritedFun);
@@ -57,7 +57,7 @@ import static org.jetbrains.kotlin.codegen.AsmUtil.*;
import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface; import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface;
import static org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.*; import static org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.*;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isCompanionObject; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isCompanionObject;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isTrait; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isInterface;
import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.PROPERTY_METADATA_TYPE; import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.PROPERTY_METADATA_TYPE;
import static org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage.OtherOrigin;
import static org.jetbrains.org.objectweb.asm.Opcodes.*; import static org.jetbrains.org.objectweb.asm.Opcodes.*;
@@ -250,7 +250,7 @@ public class PropertyCodegen {
String name = JvmAbi.getSyntheticMethodNameForAnnotatedProperty(descriptor.getName()); String name = JvmAbi.getSyntheticMethodNameForAnnotatedProperty(descriptor.getName());
String desc = receiver == null ? "()V" : "(" + typeMapper.mapType(receiver.getType()) + ")V"; String desc = receiver == null ? "()V" : "(" + typeMapper.mapType(receiver.getType()) + ")V";
if (!isTrait(context.getContextDescriptor()) || kind == OwnerKind.DEFAULT_IMPLS) { if (!isInterface(context.getContextDescriptor()) || kind == OwnerKind.DEFAULT_IMPLS) {
int flags = ACC_DEPRECATED | ACC_FINAL | ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC; int flags = ACC_DEPRECATED | ACC_FINAL | ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC;
MethodVisitor mv = v.newMethod(OtherOrigin(descriptor), flags, name, desc, null, null); MethodVisitor mv = v.newMethod(OtherOrigin(descriptor), flags, name, desc, null, null);
AnnotationCodegen.forMethod(mv, typeMapper) AnnotationCodegen.forMethod(mv, typeMapper)
@@ -595,7 +595,7 @@ public class InlineCodegen extends CallGenerator {
CodegenContext parent = getContext(descriptor.getContainingDeclaration(), state); CodegenContext parent = getContext(descriptor.getContainingDeclaration(), state);
if (descriptor instanceof ClassDescriptor) { if (descriptor instanceof ClassDescriptor) {
OwnerKind kind = DescriptorUtils.isTrait(descriptor) ? OwnerKind.DEFAULT_IMPLS : OwnerKind.IMPLEMENTATION; OwnerKind kind = DescriptorUtils.isInterface(descriptor) ? OwnerKind.DEFAULT_IMPLS : OwnerKind.IMPLEMENTATION;
return parent.intoClass((ClassDescriptor) descriptor, kind, state); return parent.intoClass((ClassDescriptor) descriptor, kind, state);
} }
else if (descriptor instanceof ScriptDescriptor) { else if (descriptor instanceof ScriptDescriptor) {
@@ -61,7 +61,7 @@ import java.util.ListIterator;
import static kotlin.KotlinPackage.substringAfterLast; import static kotlin.KotlinPackage.substringAfterLast;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.getFqName; import static org.jetbrains.kotlin.resolve.DescriptorUtils.getFqName;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isTrait; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isInterface;
public class InlineCodegenUtil { public class InlineCodegenUtil {
public static final boolean GENERATE_SMAP = true; public static final boolean GENERATE_SMAP = true;
@@ -193,7 +193,7 @@ public class InlineCodegenUtil {
} }
if (containerDescriptor instanceof ClassDescriptor) { if (containerDescriptor instanceof ClassDescriptor) {
ClassId classId = DescriptorUtilPackage.getClassId((ClassDescriptor) containerDescriptor); ClassId classId = DescriptorUtilPackage.getClassId((ClassDescriptor) containerDescriptor);
if (isTrait(containerDescriptor)) { if (isInterface(containerDescriptor)) {
FqName relativeClassName = classId.getRelativeClassName(); FqName relativeClassName = classId.getRelativeClassName();
//TODO test nested trait fun inlining //TODO test nested trait fun inlining
classId = new ClassId(classId.getPackageFqName(), Name.identifier(relativeClassName.shortName().asString() + JvmAbi.DEFAULT_IMPLS_SUFFIX)); classId = new ClassId(classId.getPackageFqName(), Name.identifier(relativeClassName.shortName().asString() + JvmAbi.DEFAULT_IMPLS_SUFFIX));
@@ -54,7 +54,7 @@ public class NativeFunChecker : DeclarationChecker {
) { ) {
if (!descriptor.hasNativeAnnotation()) return if (!descriptor.hasNativeAnnotation()) return
if (DescriptorUtils.isTrait(descriptor.getContainingDeclaration())) { if (DescriptorUtils.isInterface(descriptor.getContainingDeclaration())) {
diagnosticHolder.report(ErrorsJvm.EXTERNAL_DECLARATION_IN_TRAIT.on(declaration)) diagnosticHolder.report(ErrorsJvm.EXTERNAL_DECLARATION_IN_TRAIT.on(declaration))
} }
else if (descriptor is CallableMemberDescriptor && else if (descriptor is CallableMemberDescriptor &&
@@ -36,11 +36,11 @@ public class TraitDefaultMethodCallChecker : CallChecker {
val targetDescriptor = resolvedCall.getResultingDescriptor().getOriginal() val targetDescriptor = resolvedCall.getResultingDescriptor().getOriginal()
val containerDescriptor = targetDescriptor.getContainingDeclaration() val containerDescriptor = targetDescriptor.getContainingDeclaration()
if (containerDescriptor is JavaClassDescriptor && DescriptorUtils.isTrait(containerDescriptor)) { if (containerDescriptor is JavaClassDescriptor && DescriptorUtils.isInterface(containerDescriptor)) {
//is java interface default method called from trait //is java interface default method called from trait
val classifier = DescriptorUtils.getParentOfType(context.scope.ownerDescriptor, javaClass<ClassifierDescriptor>()) val classifier = DescriptorUtils.getParentOfType(context.scope.ownerDescriptor, javaClass<ClassifierDescriptor>())
if (classifier != null && DescriptorUtils.isTrait(classifier)) { if (classifier != null && DescriptorUtils.isInterface(classifier)) {
context.trace.report( context.trace.report(
ErrorsJvm.TRAIT_CANT_CALL_DEFAULT_METHOD_VIA_SUPER.on( ErrorsJvm.TRAIT_CANT_CALL_DEFAULT_METHOD_VIA_SUPER.on(
PsiTreeUtil.getParentOfType(resolvedCall.getCall().getCallElement(), javaClass<JetExpression>()) PsiTreeUtil.getParentOfType(resolvedCall.getCall().getCallElement(), javaClass<JetExpression>())
@@ -550,9 +550,9 @@ public class DeclarationsChecker {
} }
} }
else { else {
assert DescriptorUtils.isTrait(declaration) : "Enum entry should be declared in enum class: " + assert DescriptorUtils.isInterface(declaration) : "Enum entry should be declared in enum class: " +
classDescriptor + " " + classDescriptor + " " +
classDescriptor.getKind(); classDescriptor.getKind();
} }
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.resolve; package org.jetbrains.kotlin.resolve;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
@@ -78,7 +77,7 @@ public class ModifiersChecker {
DeclarationDescriptor containingDeclaration = classDescriptor.getContainingDeclaration(); DeclarationDescriptor containingDeclaration = classDescriptor.getContainingDeclaration();
if (!(containingDeclaration instanceof ClassDescriptor)) return InnerModifierCheckResult.ILLEGAL_POSITION; if (!(containingDeclaration instanceof ClassDescriptor)) return InnerModifierCheckResult.ILLEGAL_POSITION;
if (DescriptorUtils.isTrait(containingDeclaration)) { if (DescriptorUtils.isInterface(containingDeclaration)) {
return InnerModifierCheckResult.IN_TRAIT; return InnerModifierCheckResult.IN_TRAIT;
} }
else if (DescriptorUtils.isObject(containingDeclaration)) { else if (DescriptorUtils.isObject(containingDeclaration)) {
@@ -279,7 +279,7 @@ public open class LazyClassMemberScope(
val classOrObject = ownerInfo.getCorrespondingClassOrObject() ?: return null val classOrObject = ownerInfo.getCorrespondingClassOrObject() ?: return null
val hasPrimaryConstructor = classOrObject.hasExplicitPrimaryConstructor() val hasPrimaryConstructor = classOrObject.hasExplicitPrimaryConstructor()
if (DescriptorUtils.isTrait(thisDescriptor) && !hasPrimaryConstructor) return null if (DescriptorUtils.isInterface(thisDescriptor) && !hasPrimaryConstructor) return null
if (DescriptorUtils.canHaveDeclaredConstructors(thisDescriptor) || hasPrimaryConstructor) { if (DescriptorUtils.canHaveDeclaredConstructors(thisDescriptor) || hasPrimaryConstructor) {
val constructor = c.functionDescriptorResolver.resolvePrimaryConstructorDescriptor( val constructor = c.functionDescriptorResolver.resolvePrimaryConstructorDescriptor(
@@ -421,7 +421,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
} }
} }
if (result != null) { if (result != null) {
if (DescriptorUtils.isTrait(thisType.getConstructor().getDeclarationDescriptor())) { if (DescriptorUtils.isInterface(thisType.getConstructor().getDeclarationDescriptor())) {
if (DescriptorUtils.isClass(result.getConstructor().getDeclarationDescriptor())) { if (DescriptorUtils.isClass(result.getConstructor().getDeclarationDescriptor())) {
context.trace.report(SUPERCLASS_NOT_ACCESSIBLE_FROM_TRAIT.on(expression)); context.trace.report(SUPERCLASS_NOT_ACCESSIBLE_FROM_TRAIT.on(expression));
} }
@@ -329,7 +329,7 @@ public class DescriptorUtils {
return isKindOf(descriptor, ClassKind.ANNOTATION_CLASS); return isKindOf(descriptor, ClassKind.ANNOTATION_CLASS);
} }
public static boolean isTrait(@Nullable DeclarationDescriptor descriptor) { public static boolean isInterface(@Nullable DeclarationDescriptor descriptor) {
return isKindOf(descriptor, ClassKind.INTERFACE); return isKindOf(descriptor, ClassKind.INTERFACE);
} }
@@ -538,7 +538,7 @@ public class DescriptorUtils {
} }
public static boolean canHaveDeclaredConstructors(@NotNull ClassDescriptor classDescriptor) { public static boolean canHaveDeclaredConstructors(@NotNull ClassDescriptor classDescriptor) {
return !isSingletonOrAnonymousObject(classDescriptor) && !isTrait(classDescriptor); return !isSingletonOrAnonymousObject(classDescriptor) && !isInterface(classDescriptor);
} }
public static boolean hasDefaultConstructor(@NotNull ClassDescriptor classDescriptor) { public static boolean hasDefaultConstructor(@NotNull ClassDescriptor classDescriptor) {