summaryrefslogtreecommitdiff
path: root/compiler/src/main/java/android/databinding/tool/reflection
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2017-11-27 16:53:39 -0800
committerGeorge Mount <mount@google.com>2017-11-30 13:07:42 -0800
commit0e5980008a7d2b0945ff7fe1e9409aa138adc949 (patch)
treee57c91451832f855ec54fd25c1df1dcc38ad74d9 /compiler/src/main/java/android/databinding/tool/reflection
parent0835ba50d395456512215d72b6b4853c9710c191 (diff)
downloaddata-binding-0e5980008a7d2b0945ff7fe1e9409aa138adc949.tar.gz
Fix problem with wrong InverseBindingAdapter being chosen.
Bug: 65167377 The wrong inverse binding adapter was being chosen because priority was given improperly. This CL adjusts the way priority is given so that it is consistent between parameters accepting arguments and return values being set to values. Test: CollisionAdapterTest Change-Id: I6e5c5a77d664ddda29313e3570fc579af70a1fd4
Diffstat (limited to 'compiler/src/main/java/android/databinding/tool/reflection')
-rw-r--r--compiler/src/main/java/android/databinding/tool/reflection/InjectedClass.java9
-rw-r--r--compiler/src/main/java/android/databinding/tool/reflection/ModelClass.java18
-rw-r--r--compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationClass.java11
3 files changed, 32 insertions, 6 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/reflection/InjectedClass.java b/compiler/src/main/java/android/databinding/tool/reflection/InjectedClass.java
index eb83fcd2..ca7f3e5a 100644
--- a/compiler/src/main/java/android/databinding/tool/reflection/InjectedClass.java
+++ b/compiler/src/main/java/android/databinding/tool/reflection/InjectedClass.java
@@ -16,8 +16,12 @@
package android.databinding.tool.reflection;
+import android.databinding.tool.ext.ExtKt;
import android.databinding.tool.util.StringUtils;
+import com.squareup.javapoet.ClassName;
+import com.squareup.javapoet.TypeName;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -226,6 +230,11 @@ public class InjectedClass extends ModelClass {
}
@Override
+ public TypeName getTypeName() {
+ return ExtKt.toTypeName(mClassName);
+ }
+
+ @Override
public String toString() {
return "Injected Class: " + mClassName;
}
diff --git a/compiler/src/main/java/android/databinding/tool/reflection/ModelClass.java b/compiler/src/main/java/android/databinding/tool/reflection/ModelClass.java
index e4351222..d4a022af 100644
--- a/compiler/src/main/java/android/databinding/tool/reflection/ModelClass.java
+++ b/compiler/src/main/java/android/databinding/tool/reflection/ModelClass.java
@@ -16,11 +16,14 @@
package android.databinding.tool.reflection;
import android.databinding.Bindable;
+import android.databinding.tool.ext.ExtKt;
import android.databinding.tool.reflection.Callable.Type;
import android.databinding.tool.util.L;
import android.databinding.tool.util.StringUtils;
import com.google.common.collect.ImmutableMap;
+import com.squareup.javapoet.ClassName;
+import com.squareup.javapoet.TypeName;
import org.jetbrains.annotations.NotNull;
@@ -679,4 +682,19 @@ public abstract class ModelClass {
}
return fieldName;
}
+
+ public TypeName getTypeName() {
+ // implementation only so that PSI model doesn't break
+ return ExtKt.toTypeName(toJavaCode());
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that instanceof ModelClass) {
+ TypeName thisTypeName = getTypeName();
+ TypeName thatTypeName = ((ModelClass) that).getTypeName();
+ return thisTypeName.equals(thatTypeName);
+ }
+ return false;
+ }
}
diff --git a/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationClass.java b/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationClass.java
index a4f7eb9e..8b023f6a 100644
--- a/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationClass.java
+++ b/compiler/src/main/java/android/databinding/tool/reflection/annotation/AnnotationClass.java
@@ -22,6 +22,9 @@ import android.databinding.tool.reflection.ModelMethod;
import android.databinding.tool.reflection.TypeUtil;
import android.databinding.tool.util.L;
+import com.squareup.javapoet.ClassName;
+import com.squareup.javapoet.TypeName;
+
import java.util.ArrayList;
import java.util.List;
@@ -385,12 +388,8 @@ class AnnotationClass extends ModelClass {
}
@Override
- public boolean equals(Object obj) {
- if (obj instanceof AnnotationClass) {
- return getTypeUtils().isSameType(mTypeMirror, ((AnnotationClass) obj).mTypeMirror);
- } else {
- return false;
- }
+ public TypeName getTypeName() {
+ return ClassName.get(mTypeMirror);
}
@Override