commit | b6bf694ddf28e7bf5c033608ecba33278d9ae70f | [log] [tgz] |
---|---|---|
author | cpovirk <cpovirk@google.com> | Sat Apr 06 03:24:37 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Sat Apr 06 03:26:36 2019 -0700 |
tree | c943bb6b0ff11111884a25315516725fd6631160 | |
parent | 99ed053440f08c8e0fc2b3e647f10fff7bf58460 [diff] |
Fix "Invalid descriptor" during type inference on class in the default package. RELNOTES: none PiperOrigin-RevId: 242263409
diff --git a/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt b/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt index 4940e9c..4d0e042 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt +++ b/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt
@@ -1,3 +1,18 @@ +Class: ClassInDefaultPackageThatStartsWithC.class +Method <init> + L0 + ALOAD 0 + |__STACK: [LClassInDefaultPackageThatStartsWithC;] + |__LOCAL: [LClassInDefaultPackageThatStartsWithC;] + INVOKESPECIAL java/lang/Object.<init> ()V + |__STACK: [] + |__LOCAL: [LClassInDefaultPackageThatStartsWithC;] + RETURN + |__STACK: [] + |__LOCAL: [LClassInDefaultPackageThatStartsWithC;] + + + Class: testsubjects/TestSubject.class Method <init> L0 @@ -1792,4 +1807,4 @@ |__LOCAL: [] RETURN |__STACK: [] - |__LOCAL: [] \ No newline at end of file + |__LOCAL: []
diff --git a/src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar b/src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar index f1bb726..6e92989 100644 --- a/src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar +++ b/src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar Binary files differ
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java b/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java index d8183e9..d716656 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
@@ -647,21 +647,7 @@ } private static String convertToDescriptor(String type) { - char firstChar = type.charAt(0); - switch (firstChar) { - case 'Z': - case 'B': - case 'C': - case 'S': - case 'I': - case 'J': - case 'D': - case 'F': - case '[': - return type; - default: - return 'L' + type + ';'; - } + return (type.length() > 1 && type.charAt(0) != '[') ? 'L' + type + ';' : type; } private void push(InferredType type) {