import testlib.util.*;
public class StringPatternsUsage {
void requiresA(@PatternA String arg) {}
void requiresB(@PatternB String arg) {}
void requiresC(@PatternC String arg) {}
void requiresAB(@PatternAB String arg) {}
void requiresBC(@PatternBC String arg) {}
void requiresAC(@PatternAC String arg) {}
void requiresAny(String arg) {}
void m() {
String a = "A";
String b = "B";
String c = "C";
String d = "D";
String e = "";
// This should produce the following diagnostic:
// :-1: other: error: Bug in @ImplicitFor(stringpatterns=...) in type hierarchy definition: inferred type for "A" is [@PatternBottomPartial] which is a subtype of [@PatternBC] but its pattern does not match the string. matches = [[@PatternAC], [@PatternAB]]; nonMatches = [[@PatternBC]]
requiresA(a);
}
}