Add support of internal arguments for language feature settings

Arguments are passed in form '-XXLanguage:+LanguageFeatureName' for enabling
LanguageFeature.LanguageFeatureName, and '-XXLanguage:-LanguageFeatureName'
for disabling.

Note that they do override other settings, including 'language-version'
or extra ('-X') args.
This commit is contained in:
Dmitry Savvinov
2018-03-27 13:41:03 +03:00
parent ae119a09eb
commit c33b7377da
24 changed files with 346 additions and 23 deletions
@@ -232,6 +232,48 @@ public class CliTestGenerated extends AbstractCliTest {
runTest("compiler/testData/cli/jvm/inlineCycle.args");
}
@TestMetadata("internalArgDisableLanguageFeature.args")
public void testInternalArgDisableLanguageFeature() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgDisableLanguageFeature.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgEmptyFeatureName.args")
public void testInternalArgEmptyFeatureName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgEmptyFeatureName.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgEnableLanguageFeature.args")
public void testInternalArgEnableLanguageFeature() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgEnableLanguageFeature.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgMissingModificator.args")
public void testInternalArgMissingModificator() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgMissingModificator.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgUnrecognizedFeature.args")
public void testInternalArgUnrecognizedFeature() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgUnrecognizedFeature.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgWrongPrefix.args")
public void testInternalArgWrongPrefix() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgWrongPrefix.args");
doJvmTest(fileName);
}
@TestMetadata("internalArgumentOverrideExtraArgument.args")
public void testInternalArgumentOverrideExtraArgument() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/internalArgumentOverrideExtraArgument.args");
doJvmTest(fileName);
}
@TestMetadata("javaSrcWrongPackage.args")
public void testJavaSrcWrongPackage() throws Exception {
runTest("compiler/testData/cli/jvm/javaSrcWrongPackage.args");