anchor.diff:      if (returnStatement.expression == null) {
         value = graph.addConstantNull(compiler);
       } else {
  -      assert(target is ir.Procedure);
  +      assert(target is ir.FunctionNode);
         returnStatement.expression.accept(this);
         value = typeBuilder.potentiallyCheckOrTrustType(pop(),
  -          astAdapter.getFunctionReturnType((target as ir.Procedure).function));
  +          astAdapter.getFunctionReturnType(target));
       }
       // TODO(het): Add source information
       // TODO(het): Set a return value instead of closing the function when we
  
positive.code:         type, kind, original.instructionType, reifiedType, original);
    }
  
    /// Builds a SSA graph for [procedure].
    void buildProcedure(ir.Procedure procedure) {
      openFunction();
      procedure.function.body.accept(this);
      closeFunction();
    }
  
  
negative.code: 
  import 'package:kernel/ast.dart' as ir;
  
  import '../closure.dart';
  import '../common.dart';
  import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
  import '../common/names.dart';
  