import org.checkerframework.checker.index.qual.IndexFor;

public class IndexForVarargs {
  String get(@IndexFor("#2") int i, String... varargs) {
    return varargs[i];
  }

  void method(@IndexFor("#2") int i, String[]... varargs) {}

  void m() {
    // :: error: (argument)
    get(1);

    get(1, "a", "b");

    // :: error: (argument)
    get(2, "abc");

    String[] stringArg1 = new String[] {"a", "b"};
    String[] stringArg2 = new String[] {"c", "d", "e"};
    String[] stringArg3 = new String[] {"a", "b", "c"};

    method(1, stringArg1, stringArg2);

    // :: error: (argument)
    method(2, stringArg3);

    get(1, stringArg1);

    // :: error: (argument)
    get(3, stringArg2);
  }
}
