anchor.diff:      _resolve(_editString('+', '*'), _isFunctionBody);
     }
   
  +  void test_functionBody_expression() {
  +    _resolveUnit(r'''
  +main(int a, int b) => a + b;
  +''');
  +    _resolve(_editString('+', '*'), _isExpression);
  +  }
  +
     void test_functionBody_statement() {
       _resolveUnit(r'''
   main(int a, int b) {
     return a + b;
   }''');
       _resolve(_editString('+', '*'), _isStatement);
  +  }
  +
  +  void test_method_body() {
  +    _resolveUnit(r'''
  +class A {
  +  m(int a, int b) {
  +    return a + b;
  +  }
  +}''');
  +    _resolve(_editString('+', '*'), _isFunctionBody);
  +  }
  +
  +  void test_topLevelVariable_initializer() {
  +    _resolveUnit(r'''
  +int C = 1 + 2;
  +''');
  +    _resolve(_editString('+', '*'), _isExpression);
     }
   
     void test_updateElementOffset() {
  
positive.code: '''), _isBlock);
    }
  
    void test_functionBody_body() {
      _resolveUnit(r'''
  main(int a, int b) {
  
negative.code: 
    static bool _isBlock(AstNode node) => node is Block;
  
    static bool _isExpression(AstNode node) => node is Expression;
  
    static bool _isClassMember(AstNode node) => node is ClassMember;
  
    static bool _isFunctionBody(AstNode node) => node is FunctionBody;
  
    static bool _isStatement(AstNode node) => node is Statement;
  