Enable Java language level 9 by default.
This changes the default Java language level from 8 to 9, i.e. javac invocations now use -source 1.9 -target 1.9. The environment variable EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=false is added to switch back to the language level 8 behaviour. (Previously, setting that variable to true was required to opt in to language level 9.) Test: make droid java tests cts docs Test: javap -v <some class file in output> | grep 'major version' (reports 53, for classes from 'benchmarks' which is in Android.bp and 'ahat' which is in Android.mk) Test: make RunBluetoothRoboTests RunCarSettingsLibRoboTests (two main flavours of robolectric) Test: make cts && cts-tradefed help Test: atest CtsLibcoreTestCases (reasonably low-level device tests) Test: atest CtsHostTzDataTests (arbitrary host test) Bug: 115604102 Change-Id: I9de888e1df021244d5e61c40934178676f09ecc7 Merged-In: I52be1817fa7121fca3bce3d8857cb9ed0825570c
This commit is contained in:
parent
300a084db6
commit
1b3370f5d7
3 changed files with 18 additions and 16 deletions
|
@ -386,13 +386,14 @@ func NewConfig(srcDir, buildDir string) (Config, error) {
|
|||
|
||||
func (c *config) fromEnv() error {
|
||||
switch c.Getenv("EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9") {
|
||||
case "":
|
||||
// Nothing, this is the default
|
||||
case "true":
|
||||
// Use -source 9 -target 9
|
||||
case "", "true":
|
||||
// Use -source 9 -target 9. This is the default.
|
||||
c.targetOpenJDK9 = true
|
||||
case "false":
|
||||
// Use -source 8 -target 8. This is the legacy behaviour.
|
||||
c.targetOpenJDK9 = false
|
||||
default:
|
||||
return fmt.Errorf(`Invalid value for EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9, should be "" or "true"`)
|
||||
return fmt.Errorf(`Invalid value for EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9, should be "", "true", or "false"`)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -1095,8 +1095,10 @@ func TestPatchModule(t *testing.T) {
|
|||
`
|
||||
|
||||
t.Run("Java language level 8", func(t *testing.T) {
|
||||
// Test default javac -source 1.8 -target 1.8
|
||||
ctx, _ := testJava(t, bp)
|
||||
// Test with legacy javac -source 1.8 -target 1.8
|
||||
config := testConfig(map[string]string{"EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9": "false"})
|
||||
ctx := testContext(bp, nil)
|
||||
run(t, ctx, config)
|
||||
|
||||
checkPatchModuleFlag(t, ctx, "foo", "")
|
||||
checkPatchModuleFlag(t, ctx, "bar", "")
|
||||
|
@ -1104,10 +1106,8 @@ func TestPatchModule(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Java language level 9", func(t *testing.T) {
|
||||
// Test again with javac -source 9 -target 9
|
||||
config := testConfig(map[string]string{"EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9": "true"})
|
||||
ctx := testContext(bp, nil)
|
||||
run(t, ctx, config)
|
||||
// Test with default javac -source 9 -target 9
|
||||
ctx, _ := testJava(t, bp)
|
||||
|
||||
checkPatchModuleFlag(t, ctx, "foo", "")
|
||||
expected := "java.base=.:" + buildDir
|
||||
|
|
|
@ -279,9 +279,9 @@ func TestClasspath(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// Test with legacy javac -source 1.8 -target 1.8
|
||||
t.Run("Java language level 8", func(t *testing.T) {
|
||||
// Test default javac -source 1.8 -target 1.8
|
||||
config := testConfig(nil)
|
||||
config := testConfig(map[string]string{"EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9": "false"})
|
||||
if testcase.unbundled {
|
||||
config.TestProductVariables.Unbundled_build = proptools.BoolPtr(true)
|
||||
}
|
||||
|
@ -302,9 +302,9 @@ func TestClasspath(t *testing.T) {
|
|||
}
|
||||
})
|
||||
|
||||
// Test again with javac -source 9 -target 9
|
||||
// Test with default javac -source 9 -target 9
|
||||
t.Run("Java language level 9", func(t *testing.T) {
|
||||
config := testConfig(map[string]string{"EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9": "true"})
|
||||
config := testConfig(nil)
|
||||
if testcase.unbundled {
|
||||
config.TestProductVariables.Unbundled_build = proptools.BoolPtr(true)
|
||||
}
|
||||
|
@ -327,7 +327,8 @@ func TestClasspath(t *testing.T) {
|
|||
|
||||
// Test again with PLATFORM_VERSION_CODENAME=REL
|
||||
t.Run("REL", func(t *testing.T) {
|
||||
config := testConfig(nil)
|
||||
// TODO(b/115604102): This test should be rewritten with language level 9
|
||||
config := testConfig(map[string]string{"EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9": "false"})
|
||||
config.TestProductVariables.Platform_sdk_codename = proptools.StringPtr("REL")
|
||||
config.TestProductVariables.Platform_sdk_final = proptools.BoolPtr(true)
|
||||
|
||||
|
|
Loading…
Reference in a new issue