diff options
author | Stephan Herrmann | 2016-12-03 13:25:35 +0000 |
---|---|---|
committer | Stephan Herrmann | 2016-12-03 13:25:35 +0000 |
commit | 0e44567ab43ba318d604f2968b7c178862cd5ebd (patch) | |
tree | b42051b7f4ba00a8ca889e3faabb18c1c197bd06 | |
parent | c250b328d768a86151befdb1348c24d57ad4b306 (diff) | |
download | org.eclipse.objectteams-0e44567a.tar.gz org.eclipse.objectteams-0e44567a.tar.xz org.eclipse.objectteams-0e44567a.zip |
Regression fix: expect ast and binding of synth role ifc to diverge
-rw-r--r-- | org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java index 329e69781..73ebef46a 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier.java @@ -492,6 +492,11 @@ void checkForMissingHashCodeMethod() { void checkForRedundantSuperinterfaces(ReferenceBinding superclass, ReferenceBinding[] superInterfaces) { if (superInterfaces == Binding.NO_SUPERINTERFACES) return; +//{ObjectTeams: implicit inheritance among roles is not visible at AST level + if (this.type.isRole()) + return; + // TODO: should do this check during copyinheritance.TypeLevel! +// SH} SimpleSet interfacesToCheck = new SimpleSet(superInterfaces.length); SimpleSet redundantInterfaces = null; // bark but once. for (int i = 0, l = superInterfaces.length; i < l; i++) { @@ -506,10 +511,6 @@ void checkForRedundantSuperinterfaces(ReferenceBinding superclass, ReferenceBind } redundantInterfaces.add(implementedInterface); TypeReference[] refs = this.type.scope.referenceContext.superInterfaces; -//{ObjectTeams: implicit inheritance among role interfaces is not visible at AST level - if (refs == null) - continue; -// SH} for (int r = 0, rl = refs.length; r < rl; r++) { if (TypeBinding.equalsEquals(refs[r].resolvedType, toCheck)) { problemReporter().redundantSuperInterface(this.type, refs[j], implementedInterface, toCheck); |