@Test
public void visitMemberLookupExpr() throws Exception {

  String prog = "#version 100\n"
        + "struct S { float a; float b; };\n"
        + "struct T { S s; float c; };\n"
        + "void main() {\n"
        + "  T myT = T(S(1.0, 2.0), 3.0);\n"
        + "  myT.s.a = myT.c;\n"
        + "}";
  TranslationUnit tu = ParseHelper.parse(prog);
  int actualCount = new NullCheckTyper(tu) {
    private int count;
    private int getCount() {
      return count;
    }
    @Override
    public void visitMemberLookupExpr(MemberLookupExpr memberLookupExpr) {
        super.visitMemberLookupExpr(memberLookupExpr);
        assertNotNull(lookupType(memberLookupExpr));
        count++;
    }
  }.getCount();
  assertEquals(3, actualCount);
}