@@ -27,6 +27,8 @@ base class _DummyClass extends _DummyAbstractBaseClass {
27
27
static var dummyVarWithInit = foo ();
28
28
late String dummyLateVarWithInit = 'bar' ;
29
29
late String dummyLateVar;
30
+ int get dummyVarGetter => dummyVar;
31
+ set dummyVarSetter (int value) => dummyVar = value;
30
32
@override
31
33
void dummyFunction (int a, [bool b = false ]) {}
32
34
void dummyGenericFunction <K , V >(K a, {required V param}) {}
@@ -904,7 +906,7 @@ var tests = <IsolateTest>[
904
906
expect (result.interfaces! .length, 0 );
905
907
expect (result.mixin , isNull);
906
908
expect (result.fields! .length, 5 );
907
- expect (result.functions! .length, 10 );
909
+ expect (result.functions! .length, 12 );
908
910
expect (result.subclasses! .length, 2 );
909
911
final json = result.json! ;
910
912
expect (json['_vmName' ], startsWith ('_DummyClass@' ));
@@ -1262,7 +1264,8 @@ var tests = <IsolateTest>[
1262
1264
(VmService service, IsolateRef isolateRef) async {
1263
1265
final isolateId = isolateRef.id! ;
1264
1266
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.
1266
1269
final evalResult = await service.invoke (
1267
1270
isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1268
1271
final objectId = "${evalResult .classRef !.id !}/functions/dummyFunction" ;
@@ -1273,6 +1276,8 @@ var tests = <IsolateTest>[
1273
1276
expect (result.isConst, equals (false ));
1274
1277
expect (result.implicit, equals (false ));
1275
1278
expect (result.isAbstract, equals (false ));
1279
+ expect (result.isGetter, false );
1280
+ expect (result.isSetter, false );
1276
1281
final signature = result.signature! ;
1277
1282
expect (signature.typeParameters, isNull);
1278
1283
expect (signature.returnType, isNotNull);
@@ -1297,7 +1302,8 @@ var tests = <IsolateTest>[
1297
1302
(VmService service, IsolateRef isolateRef) async {
1298
1303
final isolateId = isolateRef.id! ;
1299
1304
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.
1301
1307
final evalResult = await service.invoke (
1302
1308
isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1303
1309
final objectId =
@@ -1309,6 +1315,8 @@ var tests = <IsolateTest>[
1309
1315
expect (result.isConst, equals (false ));
1310
1316
expect (result.implicit, equals (false ));
1311
1317
expect (result.isAbstract, equals (false ));
1318
+ expect (result.isGetter, false );
1319
+ expect (result.isSetter, false );
1312
1320
final signature = result.signature! ;
1313
1321
expect (signature.typeParameters! .length, 2 );
1314
1322
expect (signature.returnType, isNotNull);
@@ -1362,6 +1370,8 @@ var tests = <IsolateTest>[
1362
1370
expect (funcResult.isConst, equals (false ));
1363
1371
expect (funcResult.implicit, equals (false ));
1364
1372
expect (funcResult.isAbstract, equals (true ));
1373
+ expect (funcResult.isGetter, false );
1374
+ expect (funcResult.isSetter, false );
1365
1375
final signature = funcResult.signature! ;
1366
1376
expect (signature.typeParameters, isNull);
1367
1377
expect (signature.returnType, isNotNull);
@@ -1421,11 +1431,84 @@ var tests = <IsolateTest>[
1421
1431
expect (json['_guardLength' ], isNotNull);
1422
1432
},
1423
1433
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
+
1424
1506
// static field initializer
1425
1507
(VmService service, IsolateRef isolateRef) async {
1426
1508
final isolateId = isolateRef.id! ;
1427
1509
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.
1429
1512
final evalResult = await service.invoke (
1430
1513
isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1431
1514
final objectId = "${evalResult .classRef !.id !}/field_inits/dummyVarWithInit" ;
@@ -1436,6 +1519,8 @@ var tests = <IsolateTest>[
1436
1519
expect (result.isConst, equals (false ));
1437
1520
expect (result.implicit, equals (false ));
1438
1521
expect (result.isAbstract, equals (false ));
1522
+ expect (result.isGetter, false );
1523
+ expect (result.isSetter, false );
1439
1524
final signature = result.signature! ;
1440
1525
expect (signature.typeParameters, isNull);
1441
1526
expect (signature.returnType, isNotNull);
@@ -1455,7 +1540,8 @@ var tests = <IsolateTest>[
1455
1540
(VmService service, IsolateRef isolateRef) async {
1456
1541
final isolateId = isolateRef.id! ;
1457
1542
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.
1459
1545
final evalResult = await service.invoke (
1460
1546
isolateId, isolate.rootLib! .id! , 'getDummyClass' , []) as InstanceRef ;
1461
1547
final objectId =
@@ -1467,6 +1553,8 @@ var tests = <IsolateTest>[
1467
1553
expect (result.isConst, equals (false ));
1468
1554
expect (result.implicit, equals (false ));
1469
1555
expect (result.isAbstract, equals (false ));
1556
+ expect (result.isGetter, false );
1557
+ expect (result.isSetter, false );
1470
1558
final signature = result.signature! ;
1471
1559
expect (signature.typeParameters, isNull);
1472
1560
expect (signature.returnType, isNotNull);
@@ -1547,9 +1635,11 @@ var tests = <IsolateTest>[
1547
1635
final isolateId = isolateRef.id! ;
1548
1636
final isolate = await service.getIsolate (isolateId);
1549
1637
// 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 ;
1553
1643
expect (result.label, equals ('Test Tag' ));
1554
1644
},
1555
1645
0 commit comments