     guard let token = currentToken else {
       return engine.diagnose(.unexpectedEOF, node: highlightedToken)
     }
-    return engine.diagnose(.unexpectedToken(token, expected: expected),
-                           node: highlightedToken) {
-                            if let tok = highlightedToken {
-                              $0.highlight(tok)
-                            }
+    let msg = Diagnostic.Message.unexpectedToken(token, expected: expected)
+    return engine.diagnose(msg, node: highlightedToken) {
+      if let tok = highlightedToken {
+        $0.highlight(tok)
+      }
     }
   }
 


    // No pieces, no qualified name.
    guard !pieces.isEmpty else {
      throw engine.diagnose(.expected("name"), node: currentToken)
    }

    return QualifiedNameSyntax(elements: pieces)

    case .identifier(_):
      return try self.parseNamedBasicExpr()
    default:
      throw expected("expression")
    }
  }

