// override
public void resolveStatements() {
if (binding == null || ignoreFurtherInvestigation) return;
ClassScope upperScope = (ClassScope)scope.parent; //!!! safety
modifiers = checkAndSetModifiers(modifiers, upperScope);
int bindingModifiers = (modifiers | (binding.modifiers & AccGenericSignature));
binding.modifiers = bindingModifiers;
if (kind == AdviceKind.AfterThrowing && extraArgument != null) {
TypeBinding argTb = extraArgument.binding.type;
TypeBinding expectedTb = upperScope.getJavaLangThrowable();
if (!argTb.isCompatibleWith(expectedTb)) {
scope.problemReporter().typeMismatchError(argTb, expectedTb, extraArgument);
ignoreFurtherInvestigation = true;
return;
}
}
pointcutDesignator.finishResolveTypes(this, this.binding,
baseArgumentCount, upperScope.referenceContext.binding);
if (binding == null || ignoreFurtherInvestigation) return;
if (kind == AdviceKind.Around) {
ReferenceBinding[] exceptions =
new ReferenceBinding[] { upperScope.getJavaLangThrowable() };
proceedMethodBinding = new MethodBinding(Modifier.STATIC,
"proceed".toCharArray(), binding.returnType,
resize(baseArgumentCount+1, binding.parameters),
exceptions, binding.declaringClass);
proceedMethodBinding.selector =