summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorDavid Herman <davidherman@google.com>2019-02-07 12:28:03 -0800
committerDavid Herman <davidherman@google.com>2019-02-07 15:29:53 -0800
commit2ef6783e273362d725d80ad11186e3d80dc3c17e (patch)
treec3891860c1755f1a2721eed04b17a9dbe163b64c /compiler
parentc3ad9bbb1ad5a7a169433a54e7680104fdea7821 (diff)
downloaddata-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.java6
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);