diff options
author | David Herman <davidherman@google.com> | 2019-02-07 12:28:03 -0800 |
---|---|---|
committer | David Herman <davidherman@google.com> | 2019-02-07 15:29:53 -0800 |
commit | 2ef6783e273362d725d80ad11186e3d80dc3c17e (patch) | |
tree | c3891860c1755f1a2721eed04b17a9dbe163b64c /compiler | |
parent | c3ad9bbb1ad5a7a169433a54e7680104fdea7821 (diff) | |
download | data-binding-2ef6783e273362d725d80ad11186e3d80dc3c17e.tar.gz |
Fix "Cannot find symbol ...<E>" error in generic parameters
Due to a bug in the code generation logic, generic variables
that don't have their type specified cause compile errors.
e.g. this works fine
<variable type="java.util.List<Integer>" ... />
but this was broken:
<variable type="java.util.List" />
Change-Id: I7ef8f23ff01cace11f7613c5fc926b9a100fdd5f
Fixes: 123409929
Test: Integration tests updated
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationAnalyzer.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationAnalyzer.java b/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationAnalyzer.java index 8e240d34..3a899026 100644 --- a/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationAnalyzer.java +++ b/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationAnalyzer.java @@ -73,6 +73,7 @@ public class AnnotationAnalyzer extends ModelAnalyzer { @Override public ModelClass findClassInternal(String className, ImportBag imports) { + Types typeUtils = getTypeUtils(); className = className.trim(); int numDimensions = 0; while (className.endsWith("[]")) { @@ -84,7 +85,7 @@ public class AnnotationAnalyzer extends ModelAnalyzer { return addDimension(primitive.typeMirror, numDimensions); } if ("void".equals(className.toLowerCase())) { - return addDimension(getTypeUtils().getNoType(TypeKind.VOID), numDimensions); + return addDimension(typeUtils.getNoType(TypeKind.VOID), numDimensions); } int templateOpenIndex = className.indexOf('<'); DeclaredType declaredType; @@ -93,7 +94,7 @@ public class AnnotationAnalyzer extends ModelAnalyzer { if (typeElement == null) { return null; } - declaredType = (DeclaredType) typeElement.asType(); + declaredType = typeUtils.getDeclaredType(typeElement); } else { int templateCloseIndex = className.lastIndexOf('>'); String paramStr = className.substring(templateOpenIndex + 1, templateCloseIndex); @@ -117,7 +118,6 @@ public class AnnotationAnalyzer extends ModelAnalyzer { } typeArgs[i] = clazz.typeMirror; } - Types typeUtils = getTypeUtils(); declaredType = typeUtils.getDeclaredType(typeElement, typeArgs); } return addDimension(declaredType, numDimensions); |