[analysis_server] Fix some minor LSP codegen issues

Change-Id: Ie6171416cca75ec623d600ddea2e1efefd8156ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228645
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Danny Tuppeny
2022-01-18 17:35:05 +00:00
committed by Commit Bot
parent 9d2b31ab72
commit 08c42b3178
3 changed files with 40 additions and 39 deletions
@@ -628,7 +628,7 @@ class CallHierarchyItem implements ToJsonable {
final kind = SymbolKind.fromJson(kindJson as int);
final tagsJson = json['tags'];
final tags = (tagsJson as List<Object?>?)
?.map((item) => SymbolTag.fromJson(item as num))
?.map((item) => SymbolTag.fromJson(item as int))
.toList();
final detailJson = json['detail'];
final detail = detailJson as String?;
@@ -5528,7 +5528,7 @@ class CompletionClientCapabilitiesInsertTextModeSupport implements ToJsonable {
Map<String, Object?> json) {
final valueSetJson = json['valueSet'];
final valueSet = (valueSetJson as List<Object?>)
.map((item) => InsertTextMode.fromJson(item as num))
.map((item) => InsertTextMode.fromJson(item as int))
.toList();
return CompletionClientCapabilitiesInsertTextModeSupport(
valueSet: valueSet);
@@ -5743,7 +5743,7 @@ class CompletionContext implements ToJsonable {
CompletionContext({required this.triggerKind, this.triggerCharacter});
static CompletionContext fromJson(Map<String, Object?> json) {
final triggerKindJson = json['triggerKind'];
final triggerKind = CompletionTriggerKind.fromJson(triggerKindJson as num);
final triggerKind = CompletionTriggerKind.fromJson(triggerKindJson as int);
final triggerCharacterJson = json['triggerCharacter'];
final triggerCharacter = triggerCharacterJson as String?;
return CompletionContext(
@@ -5879,7 +5879,7 @@ class CompletionItem implements ToJsonable {
: null;
final insertTextModeJson = json['insertTextMode'];
final insertTextMode = insertTextModeJson != null
? InsertTextMode.fromJson(insertTextModeJson as num)
? InsertTextMode.fromJson(insertTextModeJson as int)
: null;
final textEditJson = json['textEdit'];
final textEdit = textEditJson == null
@@ -7041,7 +7041,7 @@ class CompletionTriggerKind {
const CompletionTriggerKind._(this._value);
const CompletionTriggerKind.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
switch (obj) {
@@ -8606,7 +8606,7 @@ class Diagnostic implements ToJsonable {
final range = Range.fromJson(rangeJson as Map<String, Object?>);
final severityJson = json['severity'];
final severity = severityJson != null
? DiagnosticSeverity.fromJson(severityJson as num)
? DiagnosticSeverity.fromJson(severityJson as int)
: null;
final codeJson = json['code'];
final code = codeJson as String?;
@@ -8620,7 +8620,7 @@ class Diagnostic implements ToJsonable {
final message = messageJson as String;
final tagsJson = json['tags'];
final tags = (tagsJson as List<Object?>?)
?.map((item) => DiagnosticTag.fromJson(item as num))
?.map((item) => DiagnosticTag.fromJson(item as int))
.toList();
final relatedInformationJson = json['relatedInformation'];
final relatedInformation = (relatedInformationJson as List<Object?>?)
@@ -8953,10 +8953,10 @@ class DiagnosticSeverity {
const DiagnosticSeverity(this._value);
const DiagnosticSeverity.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// Reports an error.
@@ -8988,10 +8988,10 @@ class DiagnosticTag {
const DiagnosticTag(this._value);
const DiagnosticTag.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// Unused or unnecessary code.
@@ -12384,7 +12384,7 @@ class DocumentSymbol implements ToJsonable {
final kind = SymbolKind.fromJson(kindJson as int);
final tagsJson = json['tags'];
final tags = (tagsJson as List<Object?>?)
?.map((item) => SymbolTag.fromJson(item as num))
?.map((item) => SymbolTag.fromJson(item as int))
.toList();
final deprecatedJson = json['deprecated'];
final deprecated = deprecatedJson as bool?;
@@ -12864,7 +12864,7 @@ class DocumentSymbolClientCapabilitiesTagSupport implements ToJsonable {
Map<String, Object?> json) {
final valueSetJson = json['valueSet'];
final valueSet = (valueSetJson as List<Object?>)
.map((item) => SymbolTag.fromJson(item as num))
.map((item) => SymbolTag.fromJson(item as int))
.toList();
return DocumentSymbolClientCapabilitiesTagSupport(valueSet: valueSet);
}
@@ -16348,7 +16348,8 @@ class InitializeParams implements WorkDoneProgressParams, ToJsonable {
final trace = obj['trace'];
if (trace != null &&
!((trace == 'off' || trace == 'message' || trace == 'verbose'))) {
reporter.reportError('must be of type String');
reporter.reportError(
'must be one of the literals \'off\', \'message\', \'verbose\'');
return false;
}
} finally {
@@ -16870,10 +16871,10 @@ class InsertTextMode {
const InsertTextMode(this._value);
const InsertTextMode.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// The insertion or replace strings is taken as it is. If the value is multi
@@ -19567,10 +19568,10 @@ class PrepareSupportDefaultBehavior {
const PrepareSupportDefaultBehavior(this._value);
const PrepareSupportDefaultBehavior.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// The client's default behavior is to select the identifier according the to
@@ -19834,7 +19835,7 @@ class PublishDiagnosticsClientCapabilitiesTagSupport implements ToJsonable {
Map<String, Object?> json) {
final valueSetJson = json['valueSet'];
final valueSet = (valueSetJson as List<Object?>)
.map((item) => DiagnosticTag.fromJson(item as num))
.map((item) => DiagnosticTag.fromJson(item as int))
.toList();
return PublishDiagnosticsClientCapabilitiesTagSupport(valueSet: valueSet);
}
@@ -20906,7 +20907,7 @@ class RenameClientCapabilities implements ToJsonable {
final prepareSupportDefaultBehavior =
prepareSupportDefaultBehaviorJson != null
? PrepareSupportDefaultBehavior.fromJson(
prepareSupportDefaultBehaviorJson as num)
prepareSupportDefaultBehaviorJson as int)
: null;
final honorsChangeAnnotationsJson = json['honorsChangeAnnotations'];
final honorsChangeAnnotations = honorsChangeAnnotationsJson as bool?;
@@ -26030,7 +26031,8 @@ class SetTraceParams implements ToJsonable {
return false;
}
if (!((value == 'off' || value == 'message' || value == 'verbose'))) {
reporter.reportError('must be of type String');
reporter.reportError(
'must be one of the literals \'off\', \'message\', \'verbose\'');
return false;
}
} finally {
@@ -27116,7 +27118,7 @@ class SignatureHelpContext implements ToJsonable {
static SignatureHelpContext fromJson(Map<String, Object?> json) {
final triggerKindJson = json['triggerKind'];
final triggerKind =
SignatureHelpTriggerKind.fromJson(triggerKindJson as num);
SignatureHelpTriggerKind.fromJson(triggerKindJson as int);
final triggerCharacterJson = json['triggerCharacter'];
final triggerCharacter = triggerCharacterJson as String?;
final isRetriggerJson = json['isRetrigger'];
@@ -27683,10 +27685,10 @@ class SignatureHelpTriggerKind {
const SignatureHelpTriggerKind(this._value);
const SignatureHelpTriggerKind.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// Signature help was invoked manually by the user or by a command.
@@ -27972,7 +27974,7 @@ class SymbolInformation implements ToJsonable {
final kind = SymbolKind.fromJson(kindJson as int);
final tagsJson = json['tags'];
final tags = (tagsJson as List<Object?>?)
?.map((item) => SymbolTag.fromJson(item as num))
?.map((item) => SymbolTag.fromJson(item as int))
.toList();
final deprecatedJson = json['deprecated'];
final deprecated = deprecatedJson as bool?;
@@ -28209,10 +28211,10 @@ class SymbolTag {
const SymbolTag(this._value);
const SymbolTag.fromJson(this._value);
final num _value;
final int _value;
static bool canParse(Object? obj, LspJsonReporter reporter) {
return obj is num;
return obj is int;
}
/// Render a symbol as obsolete, usually using a strike-out.
@@ -32991,7 +32993,7 @@ class WorkspaceSymbolClientCapabilitiesTagSupport implements ToJsonable {
Map<String, Object?> json) {
final valueSetJson = json['valueSet'];
final valueSet = (valueSetJson as List<Object?>)
.map((item) => SymbolTag.fromJson(item as num))
.map((item) => SymbolTag.fromJson(item as int))
.toList();
return WorkspaceSymbolClientCapabilitiesTagSupport(valueSet: valueSet);
}
@@ -131,6 +131,8 @@ List<N> _getSortedUnique<N extends AstNode>(List<N> items) {
}
String _getTypeCheckFailureMessage(TypeBase type) {
type = resolveTypeAlias(type);
if (type is LiteralType) {
return 'must be the literal ${type.literal}';
} else if (type is LiteralUnionType) {
@@ -42,7 +42,8 @@ List<AstNode> parseString(String input) {
return parser.parse();
}
TypeBase typeOfLiteral(TokenType tokenType) {
TypeBase typeOfLiteral(Token token) {
final tokenType = token.type;
final typeName = tokenType == TokenType.STRING
? 'string'
: tokenType == TokenType.NUMBER
@@ -178,7 +179,7 @@ class Interface extends AstNode {
}
class LiteralType extends TypeBase {
final Type type;
final TypeBase type;
final String literal;
LiteralType(this.type, this.literal);
@@ -278,7 +279,7 @@ class Parser {
final value = _match([TokenType.EQUAL]) ? _advance() : null;
if (type == null && value != null) {
type = typeOfLiteral(value.type);
type = typeOfLiteral(value);
}
_consume(TokenType.SEMI_COLON, 'Expected ;');
@@ -339,7 +340,7 @@ class Parser {
final value = _match([TokenType.EQUAL]) ? _advance() : null;
if (type == null && value != null) {
type = typeOfLiteral(value.type);
type = typeOfLiteral(value);
}
return Const(leadingComment, name, type!, value!);
}
@@ -601,17 +602,13 @@ class Parser {
// Some types are in (parens), so we just parse the contents as a nested type.
type = _type(containerName, fieldName);
_consume(TokenType.RIGHT_PAREN, 'Expected )');
} else if (_check(TokenType.STRING)) {
} else if (_check(TokenType.STRING) || _check(TokenType.NUMBER)) {
final token = _advance();
// In TS and the spec, literal strings can be types:
// In TS and the spec, literal values can be types:
// export const PlainText: 'plaintext' = 'plaintext';
// trace?: 'off' | 'messages' | 'verbose';
type = LiteralType(Type.identifier('string'), token.lexeme);
} else if (_check(TokenType.NUMBER)) {
final token = _advance();
// In TS and the spec, literal numbers can be types:
// export const Invoked: 1 = 1;
type = LiteralType(Type.identifier('number'), token.lexeme);
type = LiteralType(typeOfLiteral(token), token.lexeme);
} else if (_match([TokenType.LEFT_BRACKET])) {
// Tuples will just be converted to List/Array.
final tupleElementTypes = <TypeBase>[];