Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2010-04-24 15:31:58 +0000
committerStephan Herrmann2010-04-24 15:31:58 +0000
commitb9238d46dd647fd21a993ecf73598bc1af1a71fa (patch)
tree2dff714beb670f6d8688832969d6094ea72844a9 /org.eclipse.jdt.core
parentb0018388ab6a54deada03b56c828fe9ba7c43618 (diff)
downloadorg.eclipse.objectteams-b9238d46dd647fd21a993ecf73598bc1af1a71fa.tar.gz
org.eclipse.objectteams-b9238d46dd647fd21a993ecf73598bc1af1a71fa.tar.xz
org.eclipse.objectteams-b9238d46dd647fd21a993ecf73598bc1af1a71fa.zip
fix regression in test713_roleImplementsInheritedAbstractMethod2:
- don't let a problem method replace an existing method.
Diffstat (limited to 'org.eclipse.jdt.core')
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/RoleSplitter.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/RoleSplitter.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/RoleSplitter.java
index dceebd2bc..96e3b8adb 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/RoleSplitter.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/RoleSplitter.java
@@ -387,6 +387,9 @@ public class RoleSplitter
if (m.isPrivate()) continue; // not inherited
if (m.isStatic()) continue; // not applicable in roles
if (!m.isPublic()) { // not visible via interface
+ MethodBinding existingMethod = TypeAnalyzer.findMethod(roleIfcDecl.scope, ifcBinding, m.selector, m.parameters);
+ if (existingMethod != null && existingMethod.isValidBinding())
+ continue;
ProblemMethodBinding problemMethod = new ProblemMethodBinding(m, m.selector, m.parameters, ProblemReasons.NotVisible);
problemMethod.modifiers = m.modifiers;
problemMethod.modifiers |= AccAbstract|AccSemicolonBody; // don't confuse the MethodVerifier with class method in ifc

Back to the top