summaryrefslogtreecommitdiff
path: root/compiler/src/main/java/android/databinding/tool/reflection
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2015-08-05 16:25:15 -0700
committerGeorge Mount <mount@google.com>2015-08-05 17:21:21 -0700
commit91beb3a1a89a58b1c0b6b874d889394a3be90b6c (patch)
tree58d990c20b06ee509d83cf9b3d99ee4d678643e1 /compiler/src/main/java/android/databinding/tool/reflection
parent793e979f25e190162eacf46d6a4efc3efc1d2f91 (diff)
downloaddata-binding-91beb3a1a89a58b1c0b6b874d889394a3be90b6c.tar.gz
Fix ternary operator with null assigned to listener.
Bug 22907244 When finding a common type, null is an Object and the listener is an interface, so the types don't match. Change-Id: I0c5a88ec02230767b894b2feda17a1a1c8cef9f7
Diffstat (limited to 'compiler/src/main/java/android/databinding/tool/reflection')
-rw-r--r--compiler/src/main/java/android/databinding/tool/reflection/ModelAnalyzer.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/reflection/ModelAnalyzer.java b/compiler/src/main/java/android/databinding/tool/reflection/ModelAnalyzer.java
index 739c9e0b..b1de46e4 100644
--- a/compiler/src/main/java/android/databinding/tool/reflection/ModelAnalyzer.java
+++ b/compiler/src/main/java/android/databinding/tool/reflection/ModelAnalyzer.java
@@ -94,6 +94,12 @@ public abstract class ModelAnalyzer {
curr = curr.getSuperclass();
}
if (curr == null) {
+ if (modelClass1.isObject() && modelClass2.isInterface()) {
+ return modelClass1;
+ } else if (modelClass2.isObject() && modelClass1.isInterface()) {
+ return modelClass2;
+ }
+
ModelClass primitive1 = modelClass1.unbox();
ModelClass primitive2 = modelClass2.unbox();
if (!modelClass1.equals(primitive1) || !modelClass2.equals(primitive2)) {