protected boolean shouldAnalyzeRoleReference() { if ((this.bits & ASTNode.InsideJavadoc) != 0) return false; // don't complain about role encapsulation in java doc return this.resolvedType .isRole() // no need to check non-role inner of role: either inherited (non-rolish) or // local (cannot be referenced) && !TSuperHelper.isMarkerInterface(this.resolvedType); }
/** * Callout creation might have turned a method into a tsuper version. Update resolvedMethod to the * overriding callout method, if we are affected. */ public void updateTSuperMethod(ReferenceBinding type) { if (this.resolvedMethod == null) return; if (TSuperHelper.isTSuper(this.resolvedMethod)) { MethodBinding[] methods = type.methods(); if (methods != null) { for (int i = 0; i < methods.length; i++) { if (methods[i].overridesTSuper(this.resolvedMethod)) { this.resolvedMethod = methods[i]; return; } } } throw new InternalCompilerError("tsuper method not overridden by any method"); // $NON-NLS-1$ } }