diff options
author | George Mount <mount@google.com> | 2017-07-31 12:35:15 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2017-07-31 13:09:23 -0700 |
commit | 32d6211924b37695fe56d8bad48963c5d055fecc (patch) | |
tree | 11128b70c460da7dcd376eccd745b552066edd0c /compiler/src/main/java/android/databinding | |
parent | 3f5cdfb2d1dc7bed6e0cc9f470aeb5d2ef6e1450 (diff) | |
download | data-binding-32d6211924b37695fe56d8bad48963c5d055fecc.tar.gz |
Make changes so tests start passing.
Fixed gradle version.
Removed obsolete test.
Removed test for legacy versions.
Test: gw runAllTests
Taken from: Ia5a37722af011a41efbffe6ae809917a722b93a2
Change-Id: Id313c1118f267071d671f02b7f08d370b9979cc2
Diffstat (limited to 'compiler/src/main/java/android/databinding')
-rw-r--r-- | compiler/src/main/java/android/databinding/tool/expr/FieldAccessExpr.java | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/expr/FieldAccessExpr.java b/compiler/src/main/java/android/databinding/tool/expr/FieldAccessExpr.java index b60bc793..da932f9e 100644 --- a/compiler/src/main/java/android/databinding/tool/expr/FieldAccessExpr.java +++ b/compiler/src/main/java/android/databinding/tool/expr/FieldAccessExpr.java @@ -210,35 +210,33 @@ public class FieldAccessExpr extends MethodBaseExpr { ModelClass resolvedType = target.getResolvedType(); L.d("resolving %s. Resolved class type: %s", this, resolvedType); - mDependencies = new FieldAccessExpr[dependencyArray.length]; - for (int i = 0; i < dependencyArray.length; i++) { - String dependency = dependencyArray[i]; - FieldAccessExpr expr = getModel().field(getTarget(), dependency); - mDependencies[i] = expr; - expr.getResolvedType(); // force it to resolve its dependencies as well - } - - resolveDependencies(mTransitiveDependencies); - for (FieldAccessExpr expr : mTransitiveDependencies) { - if (expr.mGetter == null) { + boolean isStatic = target instanceof StaticIdentifierExpr; + for (String dependency : dependencyArray) { + Callable getter = resolvedType.findGetterOrField(dependency, isStatic); + if (getter == null) { L.e("Could not find dependent property '%s' referenced in " + "@Bindable annotation on %s.%s", - expr.getName(), - expr.mGetter.method.getDeclaringClass().toJavaCode(), - expr.mGetter.method.getName()); - } else if (!expr.mGetter.canBeInvalidated() - && !expr.getResolvedType().isObservableField()) { + dependency, + mGetter.method.getDeclaringClass().toJavaCode(), + mGetter.method.getName()); + } else if (!getter.canBeInvalidated() && !getter.resolvedType.isObservableField()) { L.e("The dependent property '%s' referenced in @Bindable " + "annotation on %s.%s must be annotated with " + "@Bindable", - expr.getName(), - expr.mGetter.method.getDeclaringClass().toJavaCode(), - expr.mGetter.method.getName()); - } else { - // Make sure we listen for changes - getModel().bindingExpr(expr); + dependency, + mGetter.method.getDeclaringClass().toJavaCode(), + mGetter.method.getName()); } } + mDependencies = new FieldAccessExpr[dependencyArray.length]; + for (int i = 0; i < dependencyArray.length; i++) { + mDependencies[i] = getModel().field(target, dependencyArray[i]); + mDependencies[i].getResolvedType(); // force dependency resolution + // Make sure we listen for changes + getModel().bindingExpr(mDependencies[i]); + } + + resolveDependencies(mTransitiveDependencies); for (FieldAccessExpr expr : mTransitiveDependencies) { expr.addBindableDependent(this); } |