modifiers = binding.modifiers = checkAndSetModifiers(modifiers, upperScope);
+ if (kind == AdviceKind.AfterThrowing && extraArgument != null) {
+ TypeBinding argTb = extraArgument.binding.type;
+ TypeBinding expectedTb = upperScope.getJavaLangThrowable();
+ if (!upperScope.areTypesCompatible(argTb, expectedTb)) {
+ scope.problemReporter().typeMismatchError(argTb, expectedTb, extraArgument);
+ ignoreFurtherInvestigation = true;
+ return;
+ }
+ }
+
pointcutDesignator.finishResolveTypes(this, this.binding,
baseArgumentCount, upperScope.referenceContext.binding);
public void generateCode(ClassScope classScope, ClassFile classFile) {
+ if (ignoreFurtherInvestigation) return;
+
super.generateCode(classScope, classFile);
if (proceedMethodBinding != null) {
generateProceedMethod(classScope, classFile);