diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DelegationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DelegationResolver.java index 07b60aefae4..b6eab7913d5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DelegationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DelegationResolver.java @@ -129,7 +129,7 @@ public final class DelegationResolver { continue; } JetType delegatedTraitType = typeResolver.resolve(typeReference); - if (delegatedTraitType == null) { + if (delegatedTraitType == null || delegatedTraitType.isError()) { continue; } Collection delegatesForTrait = generateDelegatesForTrait(delegatedMembers, delegatedTraitType); diff --git a/compiler/testData/diagnostics/tests/override/MissingDelegate.kt b/compiler/testData/diagnostics/tests/override/MissingDelegate.kt new file mode 100644 index 00000000000..84329cf1c81 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/MissingDelegate.kt @@ -0,0 +1,3 @@ +class C : Base1 by Base2(1) { + fun test() { } +} \ 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 4a4ff975554..1c3c99570a3 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -5331,6 +5331,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/override/kt880.kt"); } + @TestMetadata("MissingDelegate.kt") + public void testMissingDelegate() throws Exception { + doTest("compiler/testData/diagnostics/tests/override/MissingDelegate.kt"); + } + @TestMetadata("MultipleDefaultParametersInSupertypes.kt") public void testMultipleDefaultParametersInSupertypes() throws Exception { doTest("compiler/testData/diagnostics/tests/override/MultipleDefaultParametersInSupertypes.kt");