anchor.diff:          identifiers = identifiers.tail;
         }
       }
  -    Token type;
  +    Token beforeType;
       if (!identifiers.isEmpty) {
         if (isValidTypeReference(identifiers.head.next)) {
  -        type = identifiers.head.next;
  +        beforeType = identifiers.head;
           identifiers = identifiers.tail;
         }
       }
  
positive.code:             isVarAllowed: true)
          .next;
  
      if (token != name) {
        reportRecoverableErrorWithToken(token, fasta.templateExtraneousModifier);
        token = name;
  
negative.code:       listener.handleModifiers(0);
      }
  
      if (beforeType == null) {
        listener.handleNoType(name);
      } else {
        parseType(beforeType.next, TypeContinuation.Optional);
      }
      if (getOrSet == null && optional('operator', name)) {
        token = parseOperatorName(beforeName.next);
        if (staticModifier != null) {
          reportRecoverableError(staticModifier, fasta.messageStaticOperator);
        }
      } else {
        token = ensureIdentifier(
            beforeName.next, IdentifierContext.methodDeclaration);
      }
  
      // TODO(brianwilkerson): Move the next statement inside the else above
  