From 4cda4ce38870e3b84f94d6fa35f606ef54724bc7 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 6 Nov 2012 14:32:54 +0400 Subject: [PATCH] EA-39105 - ISE: TraceBasedRedeclarationHandler.report Fixed: java.lang.IllegalStateException: No declaration found found for org.jetbrains.jet.lang.descriptors.TypeParameterDescriptorImpl@... at org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler.report(TraceBasedRedeclarationHandler.java:48) at org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler.handleRedeclaration(TraceBasedRedeclarationHandler.java:39) --- .../org/jetbrains/jet/lang/resolve/DescriptorResolver.java | 2 +- .../jet/lang/resolve/TraceBasedRedeclarationHandler.java | 2 +- .../tests/redeclarations/RedeclaredTypeParameters.kt | 6 ++++++ .../jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt 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 51757348e28..ad943edd9a9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -530,8 +530,8 @@ public class DescriptorResolver { JetPsiUtil.safeName(typeParameter.getName()), index ); - extensibleScope.addTypeParameterDescriptor(typeParameterDescriptor); trace.record(BindingContext.TYPE_PARAMETER, typeParameter, typeParameterDescriptor); + extensibleScope.addTypeParameterDescriptor(typeParameterDescriptor); return typeParameterDescriptor; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java index 8aaef058ed7..1c0145651ce 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TraceBasedRedeclarationHandler.java @@ -45,7 +45,7 @@ public class TraceBasedRedeclarationHandler implements RedeclarationHandler { trace.report(REDECLARATION.on(firstElement, descriptor.getName().getName())); } else { - throw new IllegalStateException("No declaration found found for " + descriptor); + throw new IllegalStateException("No declaration found for " + descriptor); } } } diff --git a/compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt b/compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt new file mode 100644 index 00000000000..ea788f28693 --- /dev/null +++ b/compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt @@ -0,0 +1,6 @@ +fun Pair<T, T>() {} + +class P<T, T> {} + +val <T, T> T.foo : Int + get() = 1 \ 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 1b235982622..6766718cf9e 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -2674,6 +2674,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/redeclarations/Redeclarations.kt"); } + @TestMetadata("RedeclaredTypeParameters.kt") + public void testRedeclaredTypeParameters() throws Exception { + doTest("compiler/testData/diagnostics/tests/redeclarations/RedeclaredTypeParameters.kt"); + } + } @TestMetadata("compiler/testData/diagnostics/tests/regressions")