diff options
author | Stephan Herrmann | 2010-04-24 15:31:58 +0000 |
---|---|---|
committer | Stephan Herrmann | 2010-04-24 15:31:58 +0000 |
commit | b9238d46dd647fd21a993ecf73598bc1af1a71fa (patch) | |
tree | 2dff714beb670f6d8688832969d6094ea72844a9 /org.eclipse.jdt.core | |
parent | b0018388ab6a54deada03b56c828fe9ba7c43618 (diff) | |
download | org.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.java | 3 |
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 |