From 023e1a13a9a9d7b18894aaf12f9f8dfb441a5642 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Mon, 23 Mar 2015 11:06:48 +0300 Subject: [PATCH] Do not try to detect cycles if delegation call resolution is unsuccessful --- .../frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java | 2 +- .../diagnostics/tests/secondaryConstructors/generics.kt | 2 +- .../testData/diagnostics/tests/secondaryConstructors/kt6994.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index cac0e988979..395c09f5933 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -229,7 +229,7 @@ public class BodyResolver { @Nullable private ConstructorDescriptor getDelegatedConstructor(@NotNull ConstructorDescriptor constructor) { ResolvedCall call = trace.get(CONSTRUCTOR_RESOLVED_DELEGATION_CALL, constructor); - return call == null ? null : call.getResultingDescriptor().getOriginal(); + return call == null || !call.getStatus().isSuccess() ? null : call.getResultingDescriptor().getOriginal(); } public void resolveBodies(@NotNull BodiesResolveContext c) { diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/generics.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/generics.kt index ec12f03f68a..fbc97cc5215 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/generics.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/generics.kt @@ -17,5 +17,5 @@ class A1 : B { } class A2 { - constructor(t: R, i: Int) : this(i, 1) + constructor(t: R, i: Int) : this(i, 1) } diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/kt6994.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/kt6994.kt index 11e040e7b24..e7290c3201e 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/kt6994.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/kt6994.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class X { - constructor(t: T, i: Int): this(i, 1) + constructor(t: T, i: Int): this(i, 1) }