import org.aspectj.testing.Tester;

/** @testcase PR#554 second arg in formal on shared joinpoint with pcd if() causes verify error ?? */
public class PR554 {
  public static void main( String args[] ) {
    String A = makeProduct( "A", new Integer(1) );
    String B = makeProduct( "B", new Integer(0) );
    Tester.check("A".equals(A), "\"A\".equals(A): " + A);
    Tester.check("B".equals(B), "\"B\".equals(B): " + B);
  }
    static String makeProduct(String s, Integer i) { return null; }
}
  
aspect a {
    String around(String whatKind, Integer deleteMeToFixBug): 
        args(whatKind,deleteMeToFixBug) &&
        call(String makeProduct(String,Integer)) &&
        if("A".equals(whatKind)) {
            return "A";
        }
    String around(String whatKind, Integer deleteMeToFixBug): 
        args(whatKind,deleteMeToFixBug) &&
        call(String makeProduct(String,Integer)) &&
        if("B".equals(whatKind)) {
            return "B";
        } 
}