diff --git a/compiler/backend-common/src/org/jetbrains/jet/backend/common/DataClassMethodGenerator.java b/compiler/backend-common/src/org/jetbrains/jet/backend/common/DataClassMethodGenerator.java index adecabd0ac7..5e8d50e9f76 100644 --- a/compiler/backend-common/src/org/jetbrains/jet/backend/common/DataClassMethodGenerator.java +++ b/compiler/backend-common/src/org/jetbrains/jet/backend/common/DataClassMethodGenerator.java @@ -123,7 +123,7 @@ public abstract class DataClassMethodGenerator { private List getDataProperties() { List result = Lists.newArrayList(); for (JetParameter parameter : getPrimaryConstructorParameters()) { - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { result.add(bindingContext.get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter)); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBodyCodegen.java index 63cd71ad457..6c9ad7c0c6c 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBodyCodegen.java @@ -110,7 +110,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen { private void generatePrimaryConstructorProperties(PropertyCodegen propertyCodegen, JetClassOrObject origin) { boolean isAnnotation = origin instanceof JetClass && ((JetClass) origin).isAnnotation(); for (JetParameter p : getPrimaryConstructorParameters()) { - if (p.getValOrVarNode() != null) { + if (p.hasValOrVarNode()) { PropertyDescriptor propertyDescriptor = state.getBindingContext().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, p); if (propertyDescriptor != null) { if (!isAnnotation) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 276605079c7..2e5cb0b7043 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -1193,7 +1193,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { int curParam = 0; List constructorParameters = getPrimaryConstructorParameters(); for (JetParameter parameter : constructorParameters) { - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { VariableDescriptor descriptor = paramDescrs.get(curParam); Type type = typeMapper.mapType(descriptor); iv.load(0, classAsmType); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java index 0aa62cb4ccb..5f72a2e5bc4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java @@ -83,6 +83,14 @@ public class JetParameter extends JetNamedDeclarationStub { return modifierList != null && modifierList.getModifierNode(JetTokens.VARARG_KEYWORD) != null; } + public boolean hasValOrVarNode() { + PsiJetParameterStub stub = getStub(); + if (stub != null) { + return stub.hasValOrValNode(); + } + return getValOrVarNode() != null; + } + @Nullable public ASTNode getValOrVarNode() { PsiJetParameterStub stub = getStub(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java index 9cf2d0646b0..51198770967 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java @@ -518,7 +518,7 @@ public class JetPsiUtil { @Nullable public static JetClass getClassIfParameterIsProperty(@NotNull JetParameter jetParameter) { - if (jetParameter.getValOrVarNode() != null) { + if (jetParameter.hasValOrVarNode()) { PsiElement parent = jetParameter.getParent(); if (parent instanceof JetParameterList && parent.getParent() instanceof JetClass) { return (JetClass) parent.getParent(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt index b902c73a8ad..4664d11db9d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt @@ -85,7 +85,7 @@ public fun PsiElement.getParentByTypeAndBranch( public fun JetClassOrObject.effectiveDeclarations(): List = when(this) { is JetClass -> - getDeclarations() + getPrimaryConstructorParameters().filter { p -> p.getValOrVarNode() != null } + getDeclarations() + getPrimaryConstructorParameters().filter { p -> p.hasValOrVarNode() } else -> getDeclarations() } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java index 4750effce2c..f10fa3148ff 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java @@ -39,7 +39,7 @@ public class JetParameterElementType extends JetStubElementType notProperties = new ArrayList(); for (ValueParameterDescriptor valueParameterDescriptor : valueParameterDescriptors) { JetParameter parameter = primaryConstructorParameters.get(valueParameterDescriptor.getIndex()); - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { PropertyDescriptor propertyDescriptor = descriptorResolver.resolvePrimaryConstructorParameterToAProperty( classDescriptor, valueParameterDescriptor, diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java index dd5809819cc..8cbf57ccdf6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java @@ -318,7 +318,7 @@ public class DeclarationsChecker { private void checkValOnAnnotationParameter(JetClass aClass) { for (JetParameter parameter : aClass.getPrimaryConstructorParameters()) { - if (parameter.getValOrVarNode() == null) { + if (!parameter.hasValOrVarNode()) { trace.report(MISSING_VAL_ON_ANNOTATION_PARAMETER.on(parameter)); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index d1e51c3ec5a..065b6c8f4e5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -1438,7 +1438,7 @@ public class DescriptorResolver { @NotNull JetParameter parameter ) { // If is not a property, then it must have no modifier - if (parameter.getValOrVarNode() == null) { + if (!parameter.hasValOrVarNode()) { checkParameterHasNoModifier(trace, parameter); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java index 48287cd6d4f..e24e49c6ea0 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java @@ -180,7 +180,7 @@ public class LazyTopDownAnalyzer { private void registerPrimaryConstructorParameters(@NotNull JetClass klass) { for (JetParameter jetParameter : klass.getPrimaryConstructorParameters()) { - if (jetParameter.getValOrVarNode() != null) { + if (jetParameter.hasValOrVarNode()) { c.getPrimaryConstructorParameterProperties().put( jetParameter, (PropertyDescriptor) resolveSession.resolveToDescriptor(jetParameter) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java index 12ece456a59..13771beddf7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java @@ -407,7 +407,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { JetClass jetClass = (JetClass) grandFather; // This is a primary constructor parameter ClassDescriptor classDescriptor = getClassDescriptor(jetClass); - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { classDescriptor.getDefaultType().getMemberScope().getProperties(safeNameForLazyResolve(parameter)); return getBindingContext().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/declarations/PsiBasedClassMemberDeclarationProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/declarations/PsiBasedClassMemberDeclarationProvider.java index 67abf9bdc25..0361c608247 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/declarations/PsiBasedClassMemberDeclarationProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/declarations/PsiBasedClassMemberDeclarationProvider.java @@ -48,7 +48,7 @@ public class PsiBasedClassMemberDeclarationProvider extends AbstractPsiBasedDecl } for (JetParameter parameter : classInfo.getPrimaryConstructorParameters()) { - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { index.putToIndex(parameter); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java index dfe0272f668..ae5cc4e1e2b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -282,7 +282,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes WritableScopeImpl scope = new WritableScopeImpl(JetScope.EMPTY, primaryConstructor, RedeclarationHandler.DO_NOTHING, "Scope with constructor parameters in " + getName()); for (int i = 0; i < originalClassInfo.getPrimaryConstructorParameters().size(); i++) { JetParameter jetParameter = originalClassInfo.getPrimaryConstructorParameters().get(i); - if (jetParameter.getValOrVarNode() == null) { + if (!jetParameter.hasValOrVarNode()) { scope.addVariableDescriptor(primaryConstructor.getValueParameters().get(i)); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java index 6bbdefe0340..3782a6aa546 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java @@ -248,7 +248,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope constructorParameters = containingClass.getPrimaryConstructorParameters(); for (JetParameter constructorParameter : constructorParameters) { - if (memberName.equals(constructorParameter.getNameAsName()) && constructorParameter.getValOrVarNode() != null) { + if (memberName.equals(constructorParameter.getNameAsName()) && constructorParameter.hasValOrVarNode()) { return constructorParameter; } } diff --git a/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinReferencesSearcher.java b/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinReferencesSearcher.java index 0d95527a404..44d6a52467f 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinReferencesSearcher.java +++ b/idea/src/org/jetbrains/jet/plugin/search/ideaExtensions/KotlinReferencesSearcher.java @@ -89,7 +89,7 @@ public class KotlinReferencesSearcher extends QueryExecutorBase return LightClassUtil.getLightClassPropertyMethods(this).toNameList() is JetParameter -> - if (getValOrVarNode() != null) { + if (hasValOrVarNode()) { return LightClassUtil.getLightClassPropertyMethods(this).toNameList() } } diff --git a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt index 646c37b339b..5c0fbc7aa1f 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt +++ b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/utils.kt @@ -139,7 +139,7 @@ fun PsiReference.isUsageInContainingDeclaration(declaration: JetNamedDeclaration fun PsiReference.isCallableOverrideUsage(declaration: JetNamedDeclaration): Boolean { val decl2Desc = {(declaration: JetDeclaration) -> - if (declaration is JetParameter && declaration.getValOrVarNode() != null) declaration.propertyDescriptor else declaration.descriptor + if (declaration is JetParameter && declaration.hasValOrVarNode()) declaration.propertyDescriptor else declaration.descriptor } return checkUsageVsOriginalDescriptor(declaration, decl2Desc) { (usageDescriptor, targetDescriptor) -> diff --git a/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java b/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java index b35300afe2b..8b3bdb73b09 100644 --- a/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java +++ b/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java @@ -126,7 +126,7 @@ public class JetStructureViewElement implements StructureViewTreeElement { JetClass jetClass = (JetClass) myElement; List declarations = new ArrayList(); for (JetParameter parameter : jetClass.getPrimaryConstructorParameters()) { - if (parameter.getValOrVarNode() != null) { + if (parameter.hasValOrVarNode()) { declarations.add(parameter); } } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/JsDataClassGenerator.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/JsDataClassGenerator.java index 51435b9f982..655205648bf 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/JsDataClassGenerator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/JsDataClassGenerator.java @@ -63,7 +63,7 @@ class JsDataClassGenerator extends DataClassMethodGenerator { JsExpression argumentValue; JsExpression parameterValue = new JsNameRef(paramName); - if (constructorParam.getValOrVarNode() == null) { + if (!constructorParam.hasValOrVarNode()) { assert !function.getValueParameters().get(i).hasDefaultValue(); // Caller cannot rely on default value and pass undefined here. argumentValue = parameterValue;