anchor.diff:      }
   
       return join;
  +  }
  +
  +  TypeCheck _typeCheck(TypeExpr value, DartType type, TreeNode node) {
  +    final TypeExpr runtimeType = _translator.translate(type);
  +    final typeCheck = new TypeCheck(
  +        value, runtimeType, node, _typesBuilder.fromStaticType(type, true));
  +    _summary.add(typeCheck);
  +    return typeCheck;
     }
   
     // TODO(alexmarkov): Avoid declaring variables with static types.
  
positive.code:   }
  
    Join _declareVariable(VariableDeclaration decl,
        {bool addInitType: false,
        bool useTypeCheck: false,
        DartType checkType: null}) {
      final type = checkType ?? decl.type;
      Join join = new Join(decl.name, type);
      _summary.add(join);
      _variableJoins[decl] = join;
  
      TypeExpr variable = join;
      if (useTypeCheck) {
        TypeExpr runtimeType = _translator.translate(type);
        variable = new TypeCheck(variable, runtimeType, decl,
            _typesBuilder.fromStaticType(decl.type, true));
        _summary.add(variable);
      }
  
      _variables[decl] = variable;
  
      if (decl.initializer != null) {
        TypeExpr initType = _visit(decl.initializer);
  
negative.code:     assertx(!member.isAbstract);
  
      _staticTypeContext = new StaticTypeContext(member, _environment);
      _variables = <VariableDeclaration, Join>{};
      _returnValue = null;
      _receiver = null;
  
  