[analysis_server] satisfy annotate_overrides in generated LSP spec files
Part of #49059 Change-Id: Ifb97985907757f53548764fc64a46094650efd4c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245544 Reviewed-by: Danny Tuppeny <danny@tuppeny.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
// To regenerate the file, use the script
|
||||
// "pkg/analysis_server/tool/lsp_spec/generate_all.dart".
|
||||
|
||||
// ignore_for_file: annotate_overrides
|
||||
// ignore_for_file: prefer_is_not_operator
|
||||
// ignore_for_file: unnecessary_parenthesis
|
||||
|
||||
@@ -39,6 +38,7 @@ class AnalyzerStatusParams implements ToJsonable {
|
||||
|
||||
final bool isAnalyzing;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['isAnalyzing'] = isAnalyzing;
|
||||
@@ -112,6 +112,7 @@ class ClosingLabel implements ToJsonable {
|
||||
final String label;
|
||||
final Range range;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['label'] = label;
|
||||
@@ -200,6 +201,7 @@ class CompletionItemResolutionInfo implements ToJsonable {
|
||||
return CompletionItemResolutionInfo();
|
||||
}
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
return result;
|
||||
@@ -249,6 +251,7 @@ class DartDiagnosticServer implements ToJsonable {
|
||||
|
||||
final int port;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['port'] = port;
|
||||
@@ -349,6 +352,7 @@ class DartSuggestionSetCompletionItemResolutionInfo
|
||||
final int rLength;
|
||||
final int rOffset;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['displayUri'] = displayUri;
|
||||
@@ -574,6 +578,7 @@ class Element implements ToJsonable {
|
||||
final String? returnType;
|
||||
final String? typeParameters;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['kind'] = kind;
|
||||
@@ -772,6 +777,7 @@ class FlutterOutline implements ToJsonable {
|
||||
final Range range;
|
||||
final String? variableName;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (attributes != null) {
|
||||
@@ -997,6 +1003,7 @@ class FlutterOutlineAttribute implements ToJsonable {
|
||||
final String name;
|
||||
final Range? valueRange;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['label'] = label;
|
||||
@@ -1120,11 +1127,14 @@ class IncomingMessage implements Message, ToJsonable {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
final int? clientRequestTime;
|
||||
@override
|
||||
final String jsonrpc;
|
||||
final Method method;
|
||||
final Object? params;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (clientRequestTime != null) {
|
||||
@@ -1247,6 +1257,7 @@ class Message implements ToJsonable {
|
||||
final int? clientRequestTime;
|
||||
final String jsonrpc;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (clientRequestTime != null) {
|
||||
@@ -1342,11 +1353,16 @@ class NotificationMessage implements IncomingMessage, ToJsonable {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
final int? clientRequestTime;
|
||||
@override
|
||||
final String jsonrpc;
|
||||
@override
|
||||
final Method method;
|
||||
@override
|
||||
final Object? params;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (clientRequestTime != null) {
|
||||
@@ -1476,6 +1492,7 @@ class Outline implements ToJsonable {
|
||||
final Element element;
|
||||
final Range range;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (children != null) {
|
||||
@@ -1609,6 +1626,7 @@ class PubPackageCompletionItemResolutionInfo
|
||||
|
||||
final String packageName;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['packageName'] = packageName;
|
||||
@@ -1685,6 +1703,7 @@ class PublishClosingLabelsParams implements ToJsonable {
|
||||
final List<ClosingLabel> labels;
|
||||
final String uri;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['labels'] = labels.map((item) => item.toJson()).toList();
|
||||
@@ -1785,6 +1804,7 @@ class PublishFlutterOutlineParams implements ToJsonable {
|
||||
final FlutterOutline outline;
|
||||
final String uri;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['outline'] = outline.toJson();
|
||||
@@ -1880,6 +1900,7 @@ class PublishOutlineParams implements ToJsonable {
|
||||
final Outline outline;
|
||||
final String uri;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['outline'] = outline.toJson();
|
||||
@@ -1988,12 +2009,17 @@ class RequestMessage implements IncomingMessage, ToJsonable {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
final int? clientRequestTime;
|
||||
final Either2<int, String> id;
|
||||
@override
|
||||
final String jsonrpc;
|
||||
@override
|
||||
final Method method;
|
||||
@override
|
||||
final Object? params;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (clientRequestTime != null) {
|
||||
@@ -2139,6 +2165,7 @@ class ResponseError implements ToJsonable {
|
||||
final String? data;
|
||||
final String message;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['code'] = code.toJson();
|
||||
@@ -2267,12 +2294,15 @@ class ResponseMessage implements Message, ToJsonable {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
final int? clientRequestTime;
|
||||
final ResponseError? error;
|
||||
final Either2<int, String>? id;
|
||||
@override
|
||||
final String jsonrpc;
|
||||
final Object? result;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var map = <String, Object?>{};
|
||||
if (clientRequestTime != null) {
|
||||
@@ -2406,12 +2436,15 @@ class SnippetTextEdit implements TextEdit, ToJsonable {
|
||||
final InsertTextFormat insertTextFormat;
|
||||
|
||||
/// The string to be inserted. For delete operations use an empty string.
|
||||
@override
|
||||
final String newText;
|
||||
|
||||
/// The range of the text document to be manipulated. To insert text into a
|
||||
/// document create a range where start === end.
|
||||
@override
|
||||
final Range range;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
result['insertTextFormat'] = insertTextFormat.toJson();
|
||||
@@ -2529,6 +2562,7 @@ class ValidateRefactorResult implements ToJsonable {
|
||||
final String? message;
|
||||
final bool valid;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
var result = <String, Object?>{};
|
||||
if (message != null) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -221,6 +221,21 @@ String _getTypeCheckFailureMessage(TypeBase type) {
|
||||
}
|
||||
}
|
||||
|
||||
bool _isOverride(Interface interface, Field field) {
|
||||
for (var parentType in interface.baseTypes) {
|
||||
var parent = _interfaces[(parentType as Type).name];
|
||||
if (parent != null) {
|
||||
if (parent.members.any((m) => m.name == field.name)) {
|
||||
return true;
|
||||
}
|
||||
if (_isOverride(parent, field)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool _isSimpleType(TypeBase type) {
|
||||
const literals = ['num', 'String', 'bool', 'int'];
|
||||
return type is Type && literals.contains(type.dartType);
|
||||
@@ -531,14 +546,14 @@ void _writeEnumClass(IndentableStringBuffer buffer, Namespace namespace) {
|
||||
});
|
||||
buffer
|
||||
..writeln()
|
||||
..writeIndentedln('Object toJson() => _value;')
|
||||
..writeIndentedln('@override Object toJson() => _value;')
|
||||
..writeln()
|
||||
..writeIndentedln('@override String toString() => _value.toString();')
|
||||
..writeln()
|
||||
..writeIndentedln('@override int get hashCode => _value.hashCode;')
|
||||
..writeln()
|
||||
..writeIndentedln(
|
||||
'bool operator ==(Object other) => other is $namespaceName && other._value == _value;')
|
||||
'@override bool operator ==(Object other) => other is $namespaceName && other._value == _value;')
|
||||
..outdent()
|
||||
..writeln('}')
|
||||
..writeln();
|
||||
@@ -590,10 +605,14 @@ void _writeEqualsExpression(IndentableStringBuffer buffer, TypeBase type,
|
||||
}
|
||||
}
|
||||
|
||||
void _writeField(IndentableStringBuffer buffer, Field field) {
|
||||
void _writeField(
|
||||
IndentableStringBuffer buffer, Interface interface, Field field) {
|
||||
_writeDocCommentsAndAnnotations(buffer, field);
|
||||
final needsNullable =
|
||||
(field.allowsNull || field.allowsUndefined) && !isAnyType(field.type);
|
||||
if (_isOverride(interface, field)) {
|
||||
buffer.writeIndentedln('@override');
|
||||
}
|
||||
buffer
|
||||
..writeIndented('final ')
|
||||
..write(field.type.dartTypeWithTypeArgs)
|
||||
@@ -821,9 +840,9 @@ void _writeInterface(IndentableStringBuffer buffer, Interface interface) {
|
||||
final consts = interface.members.whereType<Const>().toList();
|
||||
final fields = _getAllFields(interface);
|
||||
buffer.writeln();
|
||||
_writeMembers(buffer, consts);
|
||||
_writeMembers(buffer, interface, consts);
|
||||
buffer.writeln();
|
||||
_writeMembers(buffer, fields);
|
||||
_writeMembers(buffer, interface, fields);
|
||||
buffer.writeln();
|
||||
_writeToJsonMethod(buffer, interface);
|
||||
_writeCanParseMethod(buffer, interface);
|
||||
@@ -866,9 +885,10 @@ void _writeJsonMapAssignment(
|
||||
}
|
||||
}
|
||||
|
||||
void _writeMember(IndentableStringBuffer buffer, Member member) {
|
||||
void _writeMember(
|
||||
IndentableStringBuffer buffer, Interface interface, Member member) {
|
||||
if (member is Field) {
|
||||
_writeField(buffer, member);
|
||||
_writeField(buffer, interface, member);
|
||||
} else if (member is Const) {
|
||||
_writeConst(buffer, member);
|
||||
} else {
|
||||
@@ -876,8 +896,9 @@ void _writeMember(IndentableStringBuffer buffer, Member member) {
|
||||
}
|
||||
}
|
||||
|
||||
void _writeMembers(IndentableStringBuffer buffer, List<Member> members) {
|
||||
_getSortedUnique(members).forEach((m) => _writeMember(buffer, m));
|
||||
void _writeMembers(
|
||||
IndentableStringBuffer buffer, Interface interface, List<Member> members) {
|
||||
_getSortedUnique(members).forEach((m) => _writeMember(buffer, interface, m));
|
||||
}
|
||||
|
||||
void _writeToJsonCode(IndentableStringBuffer buffer, TypeBase type,
|
||||
@@ -925,6 +946,7 @@ void _writeToJsonMethod(IndentableStringBuffer buffer, Interface interface) {
|
||||
['result', 'map', 'json', 'toReturn', 'results', 'value', 'values']);
|
||||
|
||||
buffer
|
||||
..writeIndentedln('@override')
|
||||
..writeIndentedln('Map<String, Object?> toJson() {')
|
||||
..indent()
|
||||
..writeIndentedln('var $mapName = <String, Object?>{};');
|
||||
|
||||
@@ -166,7 +166,6 @@ String generatedFileHeader(int year, {bool importCustom = false}) => '''
|
||||
// To regenerate the file, use the script
|
||||
// "pkg/analysis_server/tool/lsp_spec/generate_all.dart".
|
||||
|
||||
// ignore_for_file: annotate_overrides
|
||||
// ignore_for_file: prefer_is_not_operator
|
||||
// ignore_for_file: unnecessary_parenthesis
|
||||
|
||||
|
||||
Reference in New Issue
Block a user