import java.util.List;
import org.aspectj.bridge.IMessage;
+import org.aspectj.bridge.ISourceLocation;
import org.aspectj.weaver.patterns.AndPointcut;
import org.aspectj.weaver.patterns.PerClause;
import org.aspectj.weaver.patterns.Pointcut;
return ret;
}
- public static Advice makeSoftener(World world, Pointcut entry, TypePattern exceptionType,ResolvedTypeX inAspect) {
- Advice ret = world.concreteAdvice(AdviceKind.Softener,
- entry, null, 0, entry);
+ public static Advice makeSoftener(World world, Pointcut entry, TypePattern exceptionType,ResolvedTypeX inAspect,IHasSourceLocation loc) {
+ Advice ret = world.concreteAdvice(AdviceKind.Softener, entry, null, 0, loc);
ret.exceptionType = exceptionType;
ret.concreteAspect = inAspect;
} else if (declare instanceof DeclareSoft) {
DeclareSoft d = (DeclareSoft)declare;
// Ordered so that during concretization we can check the related munger
- ShadowMunger m = Advice.makeSoftener(world, d.getPointcut(), d.getException(),inAspect);
+ ShadowMunger m = Advice.makeSoftener(world, d.getPointcut(), d.getException(),inAspect,d);
Pointcut concretePointcut = d.getPointcut().concretize(inAspect, 0,m);
m.pointcut = concretePointcut;
declareSofts.add(new DeclareSoft(d.getException(), concretePointcut));