if (shadow.getIWorld().getLint().noJoinpointsForBridgeMethods.isEnabled()) {
ResolvedMember rm = shadow.getSignature().resolve(shadow.getIWorld());
if (rm!=null) {
- int shadowModifiers = shadow.getSignature().getModifiers(shadow.getIWorld());
- if (ResolvedTypeX.hasBridgeModifier(shadowModifiers)) {
- shadow.getIWorld().getLint().noJoinpointsForBridgeMethods.signal(new String[]{},getSourceLocation(),
+ int shadowModifiers = shadow.getSignature().getModifiers(shadow.getIWorld());
+ if (ResolvedTypeX.hasBridgeModifier(shadowModifiers)) {
+ shadow.getIWorld().getLint().noJoinpointsForBridgeMethods.signal(new String[]{},getSourceLocation(),
new ISourceLocation[]{shadow.getSourceLocation()});
- }
- }
- }
+ }
+ }
+ }
}
public FuzzyBoolean match(JoinPoint.StaticPart jpsp) {
TypePattern.ANY,
signature.getName(),
signature.getParameterTypes(),
- signature.getThrowsPattern());
+ signature.getThrowsPattern(),
+ signature.getAnnotationPattern());
if (nonConfusingPattern
.matches(shadow.getSignature(), shadow.getIWorld())) {
private NamePattern name;
private TypePatternList parameterTypes;
private ThrowsPattern throwsPattern;
+ private AnnotationTypePattern annotationPattern;
public SignaturePattern(Member.Kind kind, ModifiersPattern modifiers,
TypePattern returnType, TypePattern declaringType,
NamePattern name, TypePatternList parameterTypes,
- ThrowsPattern throwsPattern) {
+ ThrowsPattern throwsPattern,
+ AnnotationTypePattern annotationPattern) {
this.kind = kind;
this.modifiers = modifiers;
this.returnType = returnType;
this.declaringType = declaringType;
this.parameterTypes = parameterTypes;
this.throwsPattern = throwsPattern;
+ this.annotationPattern = annotationPattern;
}
return false;
}
-
public boolean matches(Class declaringClass, java.lang.reflect.Member member) {
if (kind == Member.ADVICE) return true;
if (kind == Member.POINTCUT) return false;
name.write(s);
parameterTypes.write(s);
throwsPattern.write(s);
+ annotationPattern.write(s);
writeLocation(s);
}
NamePattern name = NamePattern.read(s);
TypePatternList parameterTypes = TypePatternList.read(s, context);
ThrowsPattern throwsPattern = ThrowsPattern.read(s, context);
+ AnnotationTypePattern annotationPattern = AnnotationTypePattern.read(s,context);
SignaturePattern ret = new SignaturePattern(kind, modifiers, returnType, declaringType,
- name, parameterTypes, throwsPattern);
+ name, parameterTypes, throwsPattern,annotationPattern);
ret.readLocation(context, s);
return ret;
}
return false;
}
+ public AnnotationTypePattern getAnnotationPattern() {
+ return annotationPattern;
+ }
}