anchor.diff:    @override
     void endSwitchCase(int labelCount, int expressionCount, Token defaultKeyword,
         int statementCount, Token firstToken, Token endToken) {
  +    assert(optionalOrNull('default', defaultKeyword));
       debugEvent("SwitchCase");
  +
       List<Statement> statements = popList(statementCount);
       List<SwitchMember> members = popList(expressionCount) ?? [];
       List<Label> labels = popList(labelCount);
       if (defaultKeyword != null) {
  +      // TODO(brianwilkerson) The parser needs to pass the colon token directly.
         members.add(ast.switchDefault(
             <Label>[], defaultKeyword, defaultKeyword.next, <Statement>[]));
       }
  
positive.code: 
    @override
    void handleImportPrefix(Token deferredKeyword, Token asKeyword) {
      debugEvent("ImportPrefix");
      if (asKeyword == null) {
        // If asKeyword is null, then no prefix has been pushed on the stack.
        // Push a placeholder indicating that there is no prefix.
  
negative.code: 
    @override
    void handleCaseMatch(Token caseKeyword, Token colon) {
      assert(optional('case', caseKeyword));
      assert(optional(':', colon));
      debugEvent("CaseMatch");
  
      Expression expression = pop();
      push(ast.switchCase(
          <Label>[], caseKeyword, expression, colon, <Statement>[]));
  