anchor.diff:        listener.handleModifiers(0);
       }
   
  -    if (type == null) {
  +    if (beforeType == null) {
         listener.handleNoType(name);
       } else {
  -      parseType(type, TypeContinuation.Optional);
  +      parseType(beforeType.next, TypeContinuation.Optional);
       }
       if (getOrSet == null && optional('operator', name)) {
  -      token = parseOperatorName(name);
  +      token = parseOperatorName(beforeName.next);
         if (staticModifier != null) {
           reportRecoverableError(staticModifier, fasta.messageStaticOperator);
         }
       } else {
  -      token = ensureIdentifier(name, IdentifierContext.methodDeclaration);
  +      token = ensureIdentifier(
  +          beforeName.next, IdentifierContext.methodDeclaration);
       }
   
       // TODO(brianwilkerson): Move the next statement inside the else above
  
positive.code:     IdentifierContext context = isTopLevel
          ? IdentifierContext.topLevelVariableDeclaration
          : IdentifierContext.fieldDeclaration;
      token = ensureIdentifier(token, context);
  
      int fieldCount = 1;
      token = parseFieldInitializerOpt(token, name, varFinalOrConst, isTopLevel);
  
negative.code:             isVarAllowed: true)
          .next;
  
      Token name = beforeName.next;
      if (token != name) {
        reportRecoverableErrorWithToken(token, fasta.templateExtraneousModifier);
        token = name;
  