@@ -27,6 +27,8 @@ base class _DummyClass extends _DummyAbstractBaseClass {
2727 static var dummyVarWithInit = foo ();
2828 late String dummyLateVarWithInit = 'bar' ;
2929 late String dummyLateVar;
30+ int get dummyVarGetter => dummyVar;
31+ set dummyVarSetter (int value) => dummyVar = value;
3032 @override
3133 void dummyFunction (int a, [bool b = false ]) {}
3234 void dummyGenericFunction <K , V >(K a, {required V param}) {}
@@ -904,7 +906,7 @@ var tests = <IsolateTest>[
904906 expect (result.interfaces! .length, 0 );
905907 expect (result.mixin , isNull);
906908 expect (result.fields! .length, 5 );
907- expect (result.functions! .length, 10 );
909+ expect (result.functions! .length, 12 );
908910 expect (result.subclasses! .length, 2 );
909911 final json = result.json! ;
910912 expect (json['_vmName' ], startsWith ('_DummyClass@' ));
@@ -1262,7 +1264,8 @@ var tests = <IsolateTest>[
12621264 (VmService service, IsolateRef isolateRef) async {
12631265 final isolateId = isolateRef.id! ;
12641266 final isolate = await service.getIsolate (isolateId);
1265- // Call eval to get a class id.
1267+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1268+ // [classRef] field to build a function ID.
12661269 final evalResult = await service.invoke (
12671270 isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
12681271 final objectId = "${evalResult .classRef !.id !}/functions/dummyFunction" ;
@@ -1273,6 +1276,8 @@ var tests = <IsolateTest>[
12731276 expect (result.isConst, equals (false ));
12741277 expect (result.implicit, equals (false ));
12751278 expect (result.isAbstract, equals (false ));
1279+ expect (result.isGetter, false );
1280+ expect (result.isSetter, false );
12761281 final signature = result.signature! ;
12771282 expect (signature.typeParameters, isNull);
12781283 expect (signature.returnType, isNotNull);
@@ -1297,7 +1302,8 @@ var tests = <IsolateTest>[
12971302 (VmService service, IsolateRef isolateRef) async {
12981303 final isolateId = isolateRef.id! ;
12991304 final isolate = await service.getIsolate (isolateId);
1300- // Call eval to get a class id.
1305+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1306+ // [classRef] field to build a function ID.
13011307 final evalResult = await service.invoke (
13021308 isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
13031309 final objectId =
@@ -1309,6 +1315,8 @@ var tests = <IsolateTest>[
13091315 expect (result.isConst, equals (false ));
13101316 expect (result.implicit, equals (false ));
13111317 expect (result.isAbstract, equals (false ));
1318+ expect (result.isGetter, false );
1319+ expect (result.isSetter, false );
13121320 final signature = result.signature! ;
13131321 expect (signature.typeParameters! .length, 2 );
13141322 expect (signature.returnType, isNotNull);
@@ -1362,6 +1370,8 @@ var tests = <IsolateTest>[
13621370 expect (funcResult.isConst, equals (false ));
13631371 expect (funcResult.implicit, equals (false ));
13641372 expect (funcResult.isAbstract, equals (true ));
1373+ expect (funcResult.isGetter, false );
1374+ expect (funcResult.isSetter, false );
13651375 final signature = funcResult.signature! ;
13661376 expect (signature.typeParameters, isNull);
13671377 expect (signature.returnType, isNotNull);
@@ -1421,11 +1431,84 @@ var tests = <IsolateTest>[
14211431 expect (json['_guardLength' ], isNotNull);
14221432 },
14231433
1434+ // getter
1435+ (VmService service, IsolateRef isolateRef) async {
1436+ final isolateId = isolateRef.id! ;
1437+ final isolate = await service.getIsolate (isolateId);
1438+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1439+ // [classRef] field to build a function ID.
1440+ final evalResult = await service.invoke (
1441+ isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1442+ final objectId =
1443+ "${evalResult .classRef !.id !}/functions/get${Uri .encodeComponent (':' )}dummyVarGetter" ;
1444+ final result = await service.getObject (isolateId, objectId) as Func ;
1445+ expect (result.id, objectId);
1446+ expect (result.name, 'dummyVarGetter' );
1447+ expect (result.isStatic, false );
1448+ expect (result.isConst, false );
1449+ expect (result.implicit, false );
1450+ expect (result.isAbstract, false );
1451+ expect (result.isGetter, true );
1452+ expect (result.isSetter, false );
1453+ final signature = result.signature! ;
1454+ expect (signature.typeParameters, isNull);
1455+ expect (signature.returnType, isNotNull);
1456+ final parameters = signature.parameters! ;
1457+ expect (parameters.length, 1 );
1458+ expect (result.location, isNotNull);
1459+ expect (result.code, isNotNull);
1460+ final json = result.json! ;
1461+ expect (json['_kind' ], 'GetterFunction' );
1462+ expect (json['_optimizable' ], true );
1463+ expect (json['_inlinable' ], true );
1464+ expect (json['_usageCounter' ], 0 );
1465+ expect (json['_optimizedCallSiteCount' ], 0 );
1466+ expect (json['_deoptimizations' ], 0 );
1467+ },
1468+
1469+ // setter
1470+ (VmService service, IsolateRef isolateRef) async {
1471+ final isolateId = isolateRef.id! ;
1472+ final isolate = await service.getIsolate (isolateId);
1473+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1474+ // [classRef] field to build a function ID.
1475+ final evalResult = await service.invoke (
1476+ isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1477+ final objectId =
1478+ "${evalResult .classRef !.id !}/functions/set${Uri .encodeComponent (':' )}dummyVarSetter" ;
1479+ final result = await service.getObject (isolateId, objectId) as Func ;
1480+ expect (result.id, objectId);
1481+ expect (result.name, 'dummyVarSetter=' );
1482+ expect (result.isStatic, false );
1483+ expect (result.isConst, false );
1484+ expect (result.implicit, false );
1485+ expect (result.isAbstract, false );
1486+ expect (result.isGetter, false );
1487+ expect (result.isSetter, true );
1488+ final signature = result.signature! ;
1489+ expect (signature.typeParameters, isNull);
1490+ expect (signature.returnType, isNotNull);
1491+ final parameters = signature.parameters! ;
1492+ expect (parameters.length, 2 );
1493+ expect (parameters[1 ].parameterType! .name, equals ('int' ));
1494+ expect (parameters[1 ].fixed, isTrue);
1495+ expect (result.location, isNotNull);
1496+ expect (result.code, isNotNull);
1497+ final json = result.json! ;
1498+ expect (json['_kind' ], 'SetterFunction' );
1499+ expect (json['_optimizable' ], true );
1500+ expect (json['_inlinable' ], true );
1501+ expect (json['_usageCounter' ], 0 );
1502+ expect (json['_optimizedCallSiteCount' ], 0 );
1503+ expect (json['_deoptimizations' ], 0 );
1504+ },
1505+
14241506 // static field initializer
14251507 (VmService service, IsolateRef isolateRef) async {
14261508 final isolateId = isolateRef.id! ;
14271509 final isolate = await service.getIsolate (isolateId);
1428- // Call eval to get a class id.
1510+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1511+ // [classRef] field to build a function ID.
14291512 final evalResult = await service.invoke (
14301513 isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
14311514 final objectId = "${evalResult .classRef !.id !}/field_inits/dummyVarWithInit" ;
@@ -1436,6 +1519,8 @@ var tests = <IsolateTest>[
14361519 expect (result.isConst, equals (false ));
14371520 expect (result.implicit, equals (false ));
14381521 expect (result.isAbstract, equals (false ));
1522+ expect (result.isGetter, false );
1523+ expect (result.isSetter, false );
14391524 final signature = result.signature! ;
14401525 expect (signature.typeParameters, isNull);
14411526 expect (signature.returnType, isNotNull);
@@ -1455,7 +1540,8 @@ var tests = <IsolateTest>[
14551540 (VmService service, IsolateRef isolateRef) async {
14561541 final isolateId = isolateRef.id! ;
14571542 final isolate = await service.getIsolate (isolateId);
1458- // Call eval to get a class id.
1543+ // Call [invoke] to get an [InstanceRef], and then use the ID of its
1544+ // [classRef] field to build a function ID.
14591545 final evalResult = await service.invoke (
14601546 isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
14611547 final objectId =
@@ -1467,6 +1553,8 @@ var tests = <IsolateTest>[
14671553 expect (result.isConst, equals (false ));
14681554 expect (result.implicit, equals (false ));
14691555 expect (result.isAbstract, equals (false ));
1556+ expect (result.isGetter, false );
1557+ expect (result.isSetter, false );
14701558 final signature = result.signature! ;
14711559 expect (signature.typeParameters, isNull);
14721560 expect (signature.returnType, isNotNull);
@@ -1547,9 +1635,11 @@ var tests = <IsolateTest>[
15471635 final isolateId = isolateRef.id! ;
15481636 final isolate = await service.getIsolate (isolateId);
15491637 // Call eval to get a UserTag id.
1550- final evalResult = await service.invoke (
1551- isolateId, isolate.rootLib! .id! , 'getUserTag' , []) as InstanceRef ;
1552- final result = await service.getObject (isolateId, evalResult.id! ) as Instance ;
1638+ final evalResult =
1639+ await service.invoke (isolateId, isolate.rootLib! .id! , 'getUserTag' , [])
1640+ as InstanceRef ;
1641+ final result =
1642+ await service.getObject (isolateId, evalResult.id! ) as Instance ;
15531643 expect (result.label, equals ('Test Tag' ));
15541644 },
15551645
0 commit comments