From 62ddef4734c53ae181b2dcb387f052eda6edb03a Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 22 Feb 2012 00:38:14 +0400 Subject: [PATCH] fix tests after javabean properties parsing --- .../resolve/java/JavaDescriptorResolver.java | 24 +++++++++++++++---- testlib/test/Test.kt | 4 ---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index e29fdba5758..f025880f3a6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -1034,6 +1034,7 @@ public class JavaDescriptorResolver { PropertyAccessorData getter; PropertyAccessorData setter; PropertyAccessorData field; + boolean ext; } Map map = new HashMap(); @@ -1045,9 +1046,14 @@ public class JavaDescriptorResolver { GroupingValue value = map.get(key); if (value == null) { value = new GroupingValue(); + value.ext = propertyAccessor.getReceiverType() != null; map.put(key, value); } + if (value.ext != (propertyAccessor.getReceiverType() != null)) { + throw new IllegalStateException("internal error, incorrect key"); + } + if (propertyAccessor.isGetter()) { if (value.getter != null) { throw new IllegalStateException("oops, duplicate key"); @@ -1071,10 +1077,20 @@ public class JavaDescriptorResolver { Set r = new HashSet(1); - // we cannot have more then one property with given name even if java code - // has several fields, getters and setter of different types - if (map.size() == 1) { - GroupingValue members = map.values().iterator().next(); + int regularProperitesCount = 0; + for (GroupingValue members : map.values()) { + if (!members.ext) { + ++regularProperitesCount; + } + } + + for (GroupingValue members : map.values()) { + + // we cannot have more then one property with given name even if java code + // has several fields, getters and setter of different types + if (!members.ext && regularProperitesCount > 1) { + continue; + } boolean isFinal; if (members.setter == null && members.getter == null) { diff --git a/testlib/test/Test.kt b/testlib/test/Test.kt index 32dee921d8b..e3f94428bd1 100644 --- a/testlib/test/Test.kt +++ b/testlib/test/Test.kt @@ -18,10 +18,6 @@ protected class TestBuilt(name: String, val builder: TestBuilder, val test override fun countTestCases(): Int = 1 - var name : String - get() = super.getName().sure() - set(newName: String) = super.setName(newName) - override fun setUp() = this.(builder.setUp)() override fun tearDown() = this.(builder.tearDown)()