From 4b5a192e4c90dac682cad29c686001ce3429d432 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Mar 2014 20:14:50 +0400 Subject: [PATCH] Don't add primary constructors parameters for properties --- .../lazy/descriptors/LazyClassDescriptor.java | 5 ++++- .../UninitializedOrReassignedVariables.kt | 0 .../scopeOfAnonymousInitializer.kt | 5 +++++ .../jet/checkers/JetDiagnosticsTestGenerated.java | 15 ++++++++++----- 4 files changed, 19 insertions(+), 6 deletions(-) rename compiler/testData/diagnostics/tests/{ => controlFlowAnalysis}/UninitializedOrReassignedVariables.kt (100%) create mode 100644 compiler/testData/diagnostics/tests/controlFlowAnalysis/scopeOfAnonymousInitializer.kt 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 9def0f7508f..1c067c6caf9 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 @@ -245,7 +245,10 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti WritableScopeImpl scope = new WritableScopeImpl(JetScope.EMPTY, primaryConstructor, RedeclarationHandler.DO_NOTHING, "Scope with constructor parameters in " + getName()); for (ValueParameterDescriptor valueParameterDescriptor : primaryConstructor.getValueParameters()) { - scope.addVariableDescriptor(valueParameterDescriptor); + JetParameter jetParameter = originalClassInfo.getPrimaryConstructorParameters().get(valueParameterDescriptor.getIndex()); + if (jetParameter.getValOrVarNode() == null) { + scope.addVariableDescriptor(valueParameterDescriptor); + } } scope.changeLockLevel(WritableScope.LockLevel.READING); diff --git a/compiler/testData/diagnostics/tests/UninitializedOrReassignedVariables.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/UninitializedOrReassignedVariables.kt similarity index 100% rename from compiler/testData/diagnostics/tests/UninitializedOrReassignedVariables.kt rename to compiler/testData/diagnostics/tests/controlFlowAnalysis/UninitializedOrReassignedVariables.kt diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/scopeOfAnonymousInitializer.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/scopeOfAnonymousInitializer.kt new file mode 100644 index 00000000000..550d9c41ad4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/scopeOfAnonymousInitializer.kt @@ -0,0 +1,5 @@ +class AnonymousInitializers(var a: String) { + { + a = "s" + } +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 1c3c99570a3..9a3fa94a836 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -459,11 +459,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/TypeMismatchOnOverrideWithSyntaxErrors.kt"); } - @TestMetadata("UninitializedOrReassignedVariables.kt") - public void testUninitializedOrReassignedVariables() throws Exception { - doTest("compiler/testData/diagnostics/tests/UninitializedOrReassignedVariables.kt"); - } - @TestMetadata("UnitByDefaultForFunctionTypes.kt") public void testUnitByDefaultForFunctionTypes() throws Exception { doTest("compiler/testData/diagnostics/tests/UnitByDefaultForFunctionTypes.kt"); @@ -1683,11 +1678,21 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @TestMetadata("scopeOfAnonymousInitializer.kt") + public void testScopeOfAnonymousInitializer() throws Exception { + doTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/scopeOfAnonymousInitializer.kt"); + } + @TestMetadata("uninitializedInLocalDeclarations.kt") public void testUninitializedInLocalDeclarations() throws Exception { doTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/uninitializedInLocalDeclarations.kt"); } + @TestMetadata("UninitializedOrReassignedVariables.kt") + public void testUninitializedOrReassignedVariables() throws Exception { + doTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/UninitializedOrReassignedVariables.kt"); + } + @TestMetadata("unreachableCode.kt") public void testUnreachableCode() throws Exception { doTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/unreachableCode.kt");