// trying to put annotations on that correctly use @Target
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @interface MethodColoring { String value(); }
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.CONSTRUCTOR) @interface CtorColoring { String value(); }

public aspect RightTarget {
  declare @method: public void m1(..) : @MethodColoring("red");
  declare @constructor: public new(int) : @CtorColoring("red");
}

aspect X {
  before(): call(* *(..)) && @annotation(MethodColoring) {
    System.err.println("Colored method call at "+thisJoinPoint);
  }
  before(): call(new(..)) && @annotation(CtorColoring) {
    System.err.println("Colored ctor call at "+thisJoinPoint);
  }
}