From 67211fde40c4e23a81aeb6a6151a2417b087fef4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 3 Sep 2012 21:09:28 +0400 Subject: [PATCH] Check componentN functions for overload conflicts --- .../src/org/jetbrains/jet/lang/resolve/OverloadResolver.java | 4 +++- .../diagnostics/tests/dataClasses/conflictingOverloads.kt | 4 ++++ .../jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/dataClasses/conflictingOverloads.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java index dbd0e6938d2..fe41a3dd8d2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java @@ -210,7 +210,9 @@ public class OverloadResolver { if (!overloadable.isSuccess()) { JetDeclaration jetDeclaration = (JetDeclaration) BindingContextUtils .descriptorToDeclaration(trace.getBindingContext(), member); - redeclarations.add(Pair.create(jetDeclaration, member)); + if (jetDeclaration != null) { + redeclarations.add(Pair.create(jetDeclaration, member)); + } } } } diff --git a/compiler/testData/diagnostics/tests/dataClasses/conflictingOverloads.kt b/compiler/testData/diagnostics/tests/dataClasses/conflictingOverloads.kt new file mode 100644 index 00000000000..7f2d3ea85ad --- /dev/null +++ b/compiler/testData/diagnostics/tests/dataClasses/conflictingOverloads.kt @@ -0,0 +1,4 @@ +data class A(val x: Int, val y: String) { + fun component1() = 1 + fun component2() = 2 +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 0e687dd563a..b7127f17a24 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -977,6 +977,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/dataClasses/componentNamedComponent1.kt"); } + @TestMetadata("conflictingOverloads.kt") + public void testConflictingOverloads() throws Exception { + doTest("compiler/testData/diagnostics/tests/dataClasses/conflictingOverloads.kt"); + } + @TestMetadata("dataClassOverrideConflict.kt") public void testDataClassOverrideConflict() throws Exception { doTest("compiler/testData/diagnostics/tests/dataClasses/dataClassOverrideConflict.kt");