diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetFlowInformationProvider.java b/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetFlowInformationProvider.java index c1b722ef01b..de57fe9e566 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetFlowInformationProvider.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetFlowInformationProvider.java @@ -674,7 +674,7 @@ public class JetFlowInformationProvider { } else if (owner instanceof JetPrimaryConstructor) { if (!((JetParameter) element).hasValOrVar() && - !((JetPrimaryConstructor) owner).getContainingClass().isAnnotation()) { + !((JetPrimaryConstructor) owner).getContainingClassOrObject().isAnnotation()) { report(Errors.UNUSED_PARAMETER.on((JetParameter) element, variableDescriptor), ctxt); } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.kt index d14d7e40577..dd914c11797 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.kt @@ -59,8 +59,6 @@ public open class JetClass : JetClassOrObject { public fun getProperties(): List = getBody()?.getProperties().orEmpty() - public fun isAnnotation(): Boolean = hasModifier(JetTokens.ANNOTATION_KEYWORD) - public fun isInterface(): Boolean = getStub()?.isInterface() ?: (findChildByType(JetTokens.TRAIT_KEYWORD) != null || findChildByType(JetTokens.INTERFACE_KEYWORD) != null) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassOrObject.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassOrObject.kt index bf4f3be8ca2..2420af7487f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassOrObject.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassOrObject.kt @@ -60,4 +60,6 @@ abstract public class JetClassOrObject : JetTypeParameterListOwnerStub = getBody()?.getSecondaryConstructors().orEmpty() + + public fun isAnnotation(): Boolean = hasModifier(JetTokens.ANNOTATION_KEYWORD) } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetNamedDeclarationUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetNamedDeclarationUtil.java index afa4d338a2f..afbc0541b03 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetNamedDeclarationUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetNamedDeclarationUtil.java @@ -63,7 +63,7 @@ public final class JetNamedDeclarationUtil { return getFQName((JetNamedDeclaration) parent); } else if (namedDeclaration instanceof JetParameter) { - JetClass constructorClass = JetPsiUtil.getClassIfParameterIsProperty((JetParameter) namedDeclaration); + JetClassOrObject constructorClass = JetPsiUtil.getClassIfParameterIsProperty((JetParameter) namedDeclaration); if (constructorClass != null) { return getFQName(constructorClass); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPrimaryConstructor.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPrimaryConstructor.java index a75cb3afb13..2ebe7ee92dd 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPrimaryConstructor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPrimaryConstructor.java @@ -71,17 +71,9 @@ public class JetPrimaryConstructor extends JetDeclarationStub LightClassUtil.getLightClassMethod(owner) is JetPropertyAccessor -> LightClassUtil.getLightClassAccessorMethod(owner) - is JetPrimaryConstructor -> LightClassUtil.getPsiClass(owner.getContainingClass())?.getConstructors()?.let { constructors -> + is JetPrimaryConstructor -> LightClassUtil.getPsiClass(owner.getContainingClassOrObject())?.getConstructors()?.let { constructors -> if (constructors.isNotEmpty()) constructors[0] else null } else -> null diff --git a/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt b/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt index b2ed1e535e8..d520216f507 100644 --- a/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt @@ -76,8 +76,8 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment is JetNamedFunction -> addCorrespondingParameterDescriptor(getDescriptor(declaringElement, resolveSession) as FunctionDescriptor, parameter) is JetPrimaryConstructor -> { - val jetClass: JetClass = declaringElement.getContainingClass() - val classDescriptor = getDescriptor(jetClass, resolveSession) as ClassDescriptor + val jetClassOrObject: JetClassOrObject = declaringElement.getContainingClassOrObject() + val classDescriptor = getDescriptor(jetClassOrObject, resolveSession) as ClassDescriptor addCorrespondingParameterDescriptor(classDescriptor.getUnsubstitutedPrimaryConstructor(), parameter) } else -> super.visitParameter(parameter) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt index bf66ad635de..cac9becaa31 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt @@ -40,7 +40,7 @@ public open class ChangeVisibilityModifierIntention protected constructor( // val descriptor = element.resolveToDescriptor() as? DeclarationDescriptorWithVisibility ?: return null val bindingContext = element.analyze() var descriptor = (if (element is JetPrimaryConstructor) //TODO: temporary code - ((element.getParent() as JetClass).resolveToDescriptor() as ClassDescriptor).getUnsubstitutedPrimaryConstructor() + (element.getContainingClassOrObject().resolveToDescriptor() as ClassDescriptor).getUnsubstitutedPrimaryConstructor() else bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, element]) as? DeclarationDescriptorWithVisibility ?: return null if (descriptor is ValueParameterDescriptor) {