We're currently getting the first var, but somehow not transitively. If d1 is explicit typed, we don't see these dynamic invokes:
> dart ./bin/checker.dart -l info -o out tests/transitiveinfertest.dart
No issues found
#1: line 21, column 9 of tests/transitiveinfertest.dart: d1.c.b.a.x requires dynamic invoke
print(d1.c.b.a.x);
^^^^^^^^^^
#2: line 21, column 9 of tests/transitiveinfertest.dart: d1.c.b.a requires dynamic invoke
print(d1.c.b.a.x);
^^^^^^^^
#3: line 21, column 9 of tests/transitiveinfertest.dart: d1.c.b requires dynamic invoke
print(d1.c.b.a.x);
^^^^^^
R=sigmund@google.com
Review URL: https://chromereviews.googleplex.com/120937013