diff --git a/pkg/vm_service/CHANGELOG.md b/pkg/vm_service/CHANGELOG.md index 3e16bee82e8..5de2a685b96 100644 --- a/pkg/vm_service/CHANGELOG.md +++ b/pkg/vm_service/CHANGELOG.md @@ -1,9 +1,5 @@ # Changelog -## 9.1.0 -- Update to version `3.59` of the spec. -- Add `abstract` flag to `FuncRef`. - ## 9.0.0 - Update to version `3.58` of the spec. - Added optional `local` parameter to `lookupResolvedPackageUris` RPC. diff --git a/pkg/vm_service/java/version.properties b/pkg/vm_service/java/version.properties index cf92a3587eb..8aee343e8d4 100644 --- a/pkg/vm_service/java/version.properties +++ b/pkg/vm_service/java/version.properties @@ -1 +1 @@ -version=3.59 +version=3.58 diff --git a/pkg/vm_service/lib/src/vm_service.dart b/pkg/vm_service/lib/src/vm_service.dart index 5503f9ea24d..de2a2eaf62a 100644 --- a/pkg/vm_service/lib/src/vm_service.dart +++ b/pkg/vm_service/lib/src/vm_service.dart @@ -26,7 +26,7 @@ export 'snapshot_graph.dart' HeapSnapshotObjectNoData, HeapSnapshotObjectNullData; -const String vmServiceVersion = '3.59.0'; +const String vmServiceVersion = '3.58.0'; /// @optional const String optional = 'optional'; @@ -4675,9 +4675,6 @@ class FuncRef extends ObjRef { /// Is this function implicitly defined (e.g., implicit getter/setter)? bool? implicit; - /// Is this function an abstract method? - bool? isAbstract; - /// The location of this function in the source code. /// /// Note: this may not agree with the location of `owner` if this is a @@ -4692,7 +4689,6 @@ class FuncRef extends ObjRef { required this.isStatic, required this.isConst, required this.implicit, - required this.isAbstract, required String id, this.location, }) : super( @@ -4706,7 +4702,6 @@ class FuncRef extends ObjRef { isStatic = json['static'] ?? false; isConst = json['const'] ?? false; implicit = json['implicit'] ?? false; - isAbstract = json['abstract'] ?? false; location = createServiceObject(json['location'], const ['SourceLocation']) as SourceLocation?; } @@ -4724,7 +4719,6 @@ class FuncRef extends ObjRef { 'static': isStatic, 'const': isConst, 'implicit': implicit, - 'abstract': isAbstract, }); _setIfNotNull(json, 'location', location?.toJson()); return json; @@ -4736,7 +4730,7 @@ class FuncRef extends ObjRef { String toString() => '[FuncRef ' // 'id: ${id}, name: ${name}, owner: ${owner}, isStatic: ${isStatic}, ' // - 'isConst: ${isConst}, implicit: ${implicit}, isAbstract: ${isAbstract}]'; + 'isConst: ${isConst}, implicit: ${implicit}]'; } /// A `Func` represents a Dart language function. @@ -4765,9 +4759,6 @@ class Func extends Obj implements FuncRef { /// Is this function implicitly defined (e.g., implicit getter/setter)? bool? implicit; - /// Is this function an abstract method? - bool? isAbstract; - /// The location of this function in the source code. /// /// Note: this may not agree with the location of `owner` if this is a @@ -4789,7 +4780,6 @@ class Func extends Obj implements FuncRef { required this.isStatic, required this.isConst, required this.implicit, - required this.isAbstract, required this.signature, required String id, this.location, @@ -4805,7 +4795,6 @@ class Func extends Obj implements FuncRef { isStatic = json['static'] ?? false; isConst = json['const'] ?? false; implicit = json['implicit'] ?? false; - isAbstract = json['abstract'] ?? false; location = createServiceObject(json['location'], const ['SourceLocation']) as SourceLocation?; signature = createServiceObject(json['signature'], const ['InstanceRef']) @@ -4826,7 +4815,6 @@ class Func extends Obj implements FuncRef { 'static': isStatic, 'const': isConst, 'implicit': implicit, - 'abstract': isAbstract, 'signature': signature?.toJson(), }); _setIfNotNull(json, 'location', location?.toJson()); @@ -4840,7 +4828,7 @@ class Func extends Obj implements FuncRef { String toString() => '[Func ' // 'id: ${id}, name: ${name}, owner: ${owner}, isStatic: ${isStatic}, ' // - 'isConst: ${isConst}, implicit: ${implicit}, isAbstract: ${isAbstract}, signature: ${signature}]'; + 'isConst: ${isConst}, implicit: ${implicit}, signature: ${signature}]'; } /// `InstanceRef` is a reference to an `Instance`. @@ -6334,9 +6322,7 @@ class LogRecord extends Response { return json; } - String toString() => '[LogRecord ' // - 'message: ${message}, time: ${time}, level: ${level}, sequenceNumber: ${sequenceNumber}, ' // - 'loggerName: ${loggerName}, zone: ${zone}, error: ${error}, stackTrace: ${stackTrace}]'; + String toString() => '[LogRecord]'; } class MapAssociation { diff --git a/pkg/vm_service/pubspec.yaml b/pkg/vm_service/pubspec.yaml index 0f11496c77c..68572038c3f 100644 --- a/pkg/vm_service/pubspec.yaml +++ b/pkg/vm_service/pubspec.yaml @@ -1,5 +1,5 @@ name: vm_service -version: 9.1.0 +version: 9.0.0 description: >- A library to communicate with a service implementing the Dart VM service protocol. diff --git a/pkg/vm_service/tool/dart/generate_dart.dart b/pkg/vm_service/tool/dart/generate_dart.dart index cea96cdcced..e15328c8288 100644 --- a/pkg/vm_service/tool/dart/generate_dart.dart +++ b/pkg/vm_service/tool/dart/generate_dart.dart @@ -1611,7 +1611,7 @@ Map toJson() { // toString() Iterable toStringFields = getAllFields().where((f) => !f.optional); - if (toStringFields.length <= 8) { + if (toStringFields.length <= 7) { String properties = toStringFields .map( (TypeField f) => "${f.generatableName}: \${${f.generatableName}}") diff --git a/runtime/observatory/tests/service/get_object_rpc_test.dart b/runtime/observatory/tests/service/get_object_rpc_test.dart index 774c855b512..a1f05820b95 100644 --- a/runtime/observatory/tests/service/get_object_rpc_test.dart +++ b/runtime/observatory/tests/service/get_object_rpc_test.dart @@ -11,17 +11,12 @@ import 'package:test/test.dart'; import 'service_test_common.dart'; import 'test_helper.dart'; -abstract class _DummyAbstractBaseClass { - void dummyFunction(int a, [bool b = false]); -} - -class _DummyClass extends _DummyAbstractBaseClass { +class _DummyClass { static var dummyVar = 11; final List dummyList = new List.filled(20, ''); static var dummyVarWithInit = foo(); late String dummyLateVarWithInit = 'bar'; late String dummyLateVar; - @override void dummyFunction(int a, [bool b = false]) {} void dummyGenericFunction(K a, {required V param}) {} static List foo() => List.filled(20, ''); @@ -894,7 +889,6 @@ var tests = [ expect(result['static'], equals(false)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'], isNull); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 3); @@ -929,7 +923,6 @@ var tests = [ expect(result['static'], equals(false)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'].length, 2); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 3); @@ -950,60 +943,6 @@ var tests = [ expect(result['_deoptimizations'], isZero); }, - // abstract function. - (Isolate isolate) async { - // Call eval to get a class id. - var evalResult = await invoke(isolate, 'getDummyClass'); - var result = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': evalResult['class']['id'], - }); - expect(result['type'], equals('Class')); - expect(result['id'], startsWith('classes/')); - expect(result['name'], equals('_DummyClass')); - expect(result['abstract'], equals(false)); - - // Get the super class. - var superClass = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': result['super']['id'], - }); - expect(superClass['type'], equals('Class')); - expect(superClass['id'], startsWith('classes/')); - expect(superClass['name'], equals('_DummyAbstractBaseClass')); - expect(superClass['abstract'], equals(true)); - - // Find the abstract dummyFunction on the super class. - var funcId = superClass['functions'] - .firstWhere((f) => f['name'] == 'dummyFunction')['id']; - var funcResult = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': funcId, - }); - - expect(funcResult['type'], equals('Function')); - expect(funcResult['id'], equals(funcId)); - expect(funcResult['name'], equals('dummyFunction')); - expect(funcResult['_kind'], equals('RegularFunction')); - expect(funcResult['static'], equals(false)); - expect(funcResult['const'], equals(false)); - expect(funcResult['implicit'], equals(false)); - expect(funcResult['abstract'], equals(true)); - expect(funcResult['signature']['typeParameters'], isNull); - expect(funcResult['signature']['returnType'], isNotNull); - expect(funcResult['signature']['parameters'].length, 3); - expect(funcResult['signature']['parameters'][1]['parameterType']['name'], - equals('int')); - expect(funcResult['signature']['parameters'][1]['fixed'], isTrue); - expect(funcResult['signature']['parameters'][2]['parameterType']['name'], - equals('bool')); - expect(funcResult['signature']['parameters'][2]['fixed'], isFalse); - expect(funcResult['location']['type'], equals('SourceLocation')); - expect(funcResult['code']['type'], equals('@Code')); - expect(funcResult['_optimizable'], equals(true)); - expect(funcResult['_inlinable'], equals(true)); - expect(funcResult['_usageCounter'], isZero); - expect(funcResult['_optimizedCallSiteCount'], isZero); - expect(funcResult['_deoptimizations'], isZero); - }, - // invalid function. (Isolate isolate) async { // Call eval to get a class id. @@ -1063,7 +1002,6 @@ var tests = [ expect(result['static'], equals(true)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'], isNull); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 0); @@ -1092,7 +1030,6 @@ var tests = [ expect(result['static'], equals(false)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'], isNull); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 1); diff --git a/runtime/observatory/tests/service/get_version_rpc_test.dart b/runtime/observatory/tests/service/get_version_rpc_test.dart index bf51c6438c7..2e89731ddb2 100644 --- a/runtime/observatory/tests/service/get_version_rpc_test.dart +++ b/runtime/observatory/tests/service/get_version_rpc_test.dart @@ -12,7 +12,7 @@ var tests = [ final result = await vm.invokeRpcNoUpgrade('getVersion', {}); expect(result['type'], 'Version'); expect(result['major'], 3); - expect(result['minor'], 59); + expect(result['minor'], 57); expect(result['_privateMajor'], 0); expect(result['_privateMinor'], 0); }, diff --git a/runtime/observatory_2/tests/service_2/get_object_rpc_test.dart b/runtime/observatory_2/tests/service_2/get_object_rpc_test.dart index 20c65ff19c1..9c45a9e17b2 100644 --- a/runtime/observatory_2/tests/service_2/get_object_rpc_test.dart +++ b/runtime/observatory_2/tests/service_2/get_object_rpc_test.dart @@ -11,15 +11,10 @@ import 'package:test/test.dart'; import 'service_test_common.dart'; import 'test_helper.dart'; -abstract class _DummyAbstractBaseClass { - void dummyFunction(int a, [bool b = false]); -} - -class _DummyClass extends _DummyAbstractBaseClass { +class _DummyClass { static var dummyVar = 11; final List dummyList = new List.filled(20, null); static var dummyVarWithInit = foo(); - @override void dummyFunction(int a, [bool b = false]) {} void dummyGenericFunction(K a, {V param}) {} static List foo() => List.filled(20, ''); @@ -891,7 +886,6 @@ var tests = [ expect(result['static'], equals(false)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'], isNull); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 3); @@ -926,7 +920,6 @@ var tests = [ expect(result['static'], equals(false)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'].length, 2); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 3); @@ -947,60 +940,6 @@ var tests = [ expect(result['_deoptimizations'], isZero); }, - // abstract function. - (Isolate isolate) async { - // Call eval to get a class id. - var evalResult = await invoke(isolate, 'getDummyClass'); - var result = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': evalResult['class']['id'], - }); - expect(result['type'], equals('Class')); - expect(result['id'], startsWith('classes/')); - expect(result['name'], equals('_DummyClass')); - expect(result['abstract'], equals(false)); - - // Get the super class. - var superClass = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': result['super']['id'], - }); - expect(superClass['type'], equals('Class')); - expect(superClass['id'], startsWith('classes/')); - expect(superClass['name'], equals('_DummyAbstractBaseClass')); - expect(superClass['abstract'], equals(true)); - - // Find the abstract dummyFunction on the super class. - var funcId = superClass['functions'] - .firstWhere((f) => f['name'] == 'dummyFunction')['id']; - var funcResult = await isolate.invokeRpcNoUpgrade('getObject', { - 'objectId': funcId, - }); - - expect(funcResult['type'], equals('Function')); - expect(funcResult['id'], equals(funcId)); - expect(funcResult['name'], equals('dummyFunction')); - expect(funcResult['_kind'], equals('RegularFunction')); - expect(funcResult['static'], equals(false)); - expect(funcResult['const'], equals(false)); - expect(funcResult['implicit'], equals(false)); - expect(funcResult['abstract'], equals(true)); - expect(funcResult['signature']['typeParameters'], isNull); - expect(funcResult['signature']['returnType'], isNotNull); - expect(funcResult['signature']['parameters'].length, 3); - expect(funcResult['signature']['parameters'][1]['parameterType']['name'], - equals('int')); - expect(funcResult['signature']['parameters'][1]['fixed'], isTrue); - expect(funcResult['signature']['parameters'][2]['parameterType']['name'], - equals('bool')); - expect(funcResult['signature']['parameters'][2]['fixed'], isFalse); - expect(funcResult['location']['type'], equals('SourceLocation')); - expect(funcResult['code']['type'], equals('@Code')); - expect(funcResult['_optimizable'], equals(true)); - expect(funcResult['_inlinable'], equals(true)); - expect(funcResult['_usageCounter'], isZero); - expect(funcResult['_optimizedCallSiteCount'], isZero); - expect(funcResult['_deoptimizations'], isZero); - }, - // invalid function. (Isolate isolate) async { // Call eval to get a class id. @@ -1093,7 +1032,6 @@ var tests = [ expect(result['static'], equals(true)); expect(result['const'], equals(false)); expect(result['implicit'], equals(false)); - expect(result['abstract'], equals(false)); expect(result['signature']['typeParameters'], isNull); expect(result['signature']['returnType'], isNotNull); expect(result['signature']['parameters'].length, 0); diff --git a/runtime/observatory_2/tests/service_2/get_version_rpc_test.dart b/runtime/observatory_2/tests/service_2/get_version_rpc_test.dart index 4bb45aff1b4..451c93e1fd5 100644 --- a/runtime/observatory_2/tests/service_2/get_version_rpc_test.dart +++ b/runtime/observatory_2/tests/service_2/get_version_rpc_test.dart @@ -12,7 +12,7 @@ var tests = [ final result = await vm.invokeRpcNoUpgrade('getVersion', {}); expect(result['type'], equals('Version')); expect(result['major'], equals(3)); - expect(result['minor'], equals(59)); + expect(result['minor'], equals(57)); expect(result['_privateMajor'], equals(0)); expect(result['_privateMinor'], equals(0)); }, diff --git a/runtime/vm/object_service.cc b/runtime/vm/object_service.cc index 3ecf23c2e52..fd957bcd13a 100644 --- a/runtime/vm/object_service.cc +++ b/runtime/vm/object_service.cc @@ -341,7 +341,6 @@ void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { jsobj.AddProperty("static", is_static()); jsobj.AddProperty("const", is_const()); jsobj.AddProperty("implicit", IsImplicitGetterOrSetter()); - jsobj.AddProperty("abstract", is_abstract()); jsobj.AddProperty("_intrinsic", is_intrinsic()); jsobj.AddProperty("_native", is_native()); diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc index 2df9119821c..b168abc17bd 100644 --- a/runtime/vm/object_test.cc +++ b/runtime/vm/object_test.cc @@ -5890,7 +5890,7 @@ ISOLATE_UNIT_TEST_CASE(PrintJSONPrimitives) { "\"library\":{\"type\":\"@Library\",\"fixedId\":true,\"id\":\"\"," "\"name\":\"dart.core\",\"uri\":\"dart:core\"}}," "\"_kind\":\"RegularFunction\",\"static\":false,\"const\":false," - "\"implicit\":false,\"abstract\":false," + "\"implicit\":false," "\"_intrinsic\":false,\"_native\":false," "\"location\":{\"type\":\"SourceLocation\"," "\"script\":{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," diff --git a/runtime/vm/service.h b/runtime/vm/service.h index 38a0bf69e8f..b8e3124c61b 100644 --- a/runtime/vm/service.h +++ b/runtime/vm/service.h @@ -17,7 +17,7 @@ namespace dart { #define SERVICE_PROTOCOL_MAJOR_VERSION 3 -#define SERVICE_PROTOCOL_MINOR_VERSION 59 +#define SERVICE_PROTOCOL_MINOR_VERSION 57 class Array; class EmbedderServiceHandler; diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md index 69c4c637988..8c0754093cf 100644 --- a/runtime/vm/service/service.md +++ b/runtime/vm/service/service.md @@ -1,4 +1,4 @@ -# Dart VM Service Protocol 3.59 +# Dart VM Service Protocol 3.58 > Please post feedback to the [observatory-discuss group][discuss-list] @@ -2596,9 +2596,6 @@ class @Function extends @Object { // Is this function implicitly defined (e.g., implicit getter/setter)? bool implicit; - // Is this function an abstract method? - bool abstract; - // The location of this function in the source code. // // Note: this may not agree with the location of `owner` if this is a function @@ -2631,9 +2628,6 @@ class Function extends Object { // Is this function implicitly defined (e.g., implicit getter/setter)? bool implicit; - // Is this function an abstract method? - bool abstract; - // The location of this function in the source code. // // Note: this may not agree with the location of `owner` if this is a function @@ -4378,6 +4372,5 @@ version | comments 3.56 | Added optional `line` and `column` properties to `SourceLocation`. Added a new `SourceReportKind`, `BranchCoverage`, which reports branch level coverage information. 3.57 | Added optional `libraryFilters` parameter to `getSourceReport` RPC. 3.58 | Added optional `local` parameter to `lookupResolvedPackageUris` RPC. -3.59 | Added `abstract` property to `@Function` and `Function`. [discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observatory-discuss diff --git a/runtime/vm/source_report_test.cc b/runtime/vm/source_report_test.cc index 22ef9de090a..34a00bfcb7e 100644 --- a/runtime/vm/source_report_test.cc +++ b/runtime/vm/source_report_test.cc @@ -603,7 +603,7 @@ ISOLATE_UNIT_TEST_CASE(SourceReport_CallSites_SimpleCall) { "\"name\":\"helper0\",\"owner\":{\"type\":\"@Library\",\"fixedId\":true," "\"id\":\"\",\"name\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\"}," "\"_kind\":\"RegularFunction\",\"static\":true,\"const\":false," - "\"implicit\":false,\"abstract\":false," + "\"implicit\":false," "\"_intrinsic\":false,\"_native\":false,\"location\":{\"type\":" "\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"fixedId\":true," "\"id\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\",\"_kind\":\"kernel\"}," @@ -687,8 +687,8 @@ ISOLATE_UNIT_TEST_CASE(SourceReport_CallSites_PolymorphicCall) { "\"library\":{\"type\":\"@Library\",\"fixedId\":true," "\"id\":\"\",\"name\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\"}" "},\"_kind\":\"RegularFunction\"," - "\"static\":false,\"const\":false,\"implicit\":false,\"abstract\":" - "false,\"_intrinsic\":false," + "\"static\":false,\"const\":false,\"implicit\":false,\"_intrinsic\":" + "false," "\"_native\":false," "\"location\":{\"type\":\"SourceLocation\"," "\"script\":{\"type\":\"@Script\",\"fixedId\":true," @@ -723,8 +723,8 @@ ISOLATE_UNIT_TEST_CASE(SourceReport_CallSites_PolymorphicCall) { "\"library\":{\"type\":\"@Library\",\"fixedId\":true," "\"id\":\"\",\"name\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\"}" "},\"_kind\":\"RegularFunction\"," - "\"static\":false,\"const\":false,\"implicit\":false,\"abstract\":" - "false,\"_intrinsic\":false," + "\"static\":false,\"const\":false,\"implicit\":false,\"_intrinsic\":" + "false," "\"_native\":false," "\"location\":{\"type\":\"SourceLocation\"," "\"script\":{\"type\":\"@Script\",\"fixedId\":true," @@ -782,7 +782,7 @@ ISOLATE_UNIT_TEST_CASE(SourceReport_MultipleReports) { "\"name\":\"helper0\",\"owner\":{\"type\":\"@Library\",\"fixedId\":true," "\"id\":\"\",\"name\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\"},\"_" "kind\":\"RegularFunction\",\"static\":true,\"const\":false,\"implicit\":" - "false,\"abstract\":false,\"_" + "false,\"_" "intrinsic\":false,\"_native\":false,\"location\":{\"type\":" "\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"fixedId\":true," "\"id\":\"\",\"uri\":\"file:\\/\\/\\/test-lib\",\"_kind\":\"kernel\"},"