[core] Revamp the language version alias APIs
- The old experimental API allowed calls such as `addVersions(langHandler, false)` which were not only invalid, but would throw an `ArrayIndexOutOfBoundsException`, so we split the name (required) and the aliases (varargs, and therefore optional) - In doing so, I was bothered by parameter order. The version name is the most significant change when setting 2 versions for a language, so I liked it being first as the old `addVersion` method did, so I moved that ahead. - With that, I now had 2 methods that where equivalent, except one allowed for varargs and the other didn't… so I merged them. This is not 100% binary compatible, but it is source compatible (that is, unless you used reflection, all valid calls to the old non-experimental method still work).
This commit is contained in:
@ -19,12 +19,12 @@ public class JavaLanguageModule extends BaseLanguageModule {
|
||||
super(NAME, null, TERSE_NAME, JavaRuleChainVisitor.class, "java");
|
||||
addVersion("1.3", new JavaLanguageHandler(3), false);
|
||||
addVersion("1.4", new JavaLanguageHandler(4), false);
|
||||
addVersions(new JavaLanguageHandler(5), false, "1.5", "5");
|
||||
addVersions(new JavaLanguageHandler(6), false, "1.6", "6");
|
||||
addVersions(new JavaLanguageHandler(7), false, "1.7", "7");
|
||||
addVersions(new JavaLanguageHandler(8), false, "1.8", "8");
|
||||
addVersions(new JavaLanguageHandler(9), false, "9", "1.9");
|
||||
addVersions(new JavaLanguageHandler(10), false, "10", "1.10");
|
||||
addVersion("1.5", new JavaLanguageHandler(5), false, "5");
|
||||
addVersion("1.6", new JavaLanguageHandler(6), false, "6");
|
||||
addVersion("1.7", new JavaLanguageHandler(7), false, "7");
|
||||
addVersion("1.8", new JavaLanguageHandler(8), false, "8");
|
||||
addVersion("9", new JavaLanguageHandler(9), false, "1.9");
|
||||
addVersion("10", new JavaLanguageHandler(10), false, "1.10");
|
||||
addVersion("11", new JavaLanguageHandler(11), false);
|
||||
addVersion("12", new JavaLanguageHandler(12), false);
|
||||
addVersion("13", new JavaLanguageHandler(13), false);
|
||||
|
@ -35,25 +35,26 @@ public class LanguageVersionTest extends AbstractLanguageVersionTest {
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.8",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.8"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "9",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("9"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("9"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "10",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("10"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("10"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "11",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("11"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("11"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "12",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("12"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("12"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "12-preview",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("12-preview"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("12-preview"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "13",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("13"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("13"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "13-preview",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("13-preview"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("13-preview"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "14",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("14"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("14"), },
|
||||
{ JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "14-preview",
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("14-preview"), },
|
||||
LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("14-preview"), },
|
||||
|
||||
// this one won't be found: case sensitive!
|
||||
{ "JAVA", "JAVA", "1.7", null, }, });
|
||||
{ "JAVA", "JAVA", "1.7", null, },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user