diff options
author | George Mount <mount@google.com> | 2015-08-05 16:25:15 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2015-08-05 17:21:21 -0700 |
commit | 91beb3a1a89a58b1c0b6b874d889394a3be90b6c (patch) | |
tree | 58d990c20b06ee509d83cf9b3d99ee4d678643e1 /compiler/src/main/java/android/databinding/tool/reflection | |
parent | 793e979f25e190162eacf46d6a4efc3efc1d2f91 (diff) | |
download | data-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.java | 6 |
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)) { |