Skip to content

Commit 437ab21

Browse files
Anna GringauzeCommit Queue
Anna Gringauze
authored and
Commit Queue
committed
[beta][ddc] Fix incorrect debugger information on record types.
Closes: #54609 Cherry-pick: https://dart-review.googlesource.com/c/sdk/+/345825 Cherry-pick-request: TBA Change-Id: I42f0a22c99df5e15cc52aa2008c113ac94017080 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348186 Commit-Queue: Kevin Chisholm <[email protected]> Reviewed-by: Sigmund Cherem <[email protected]>
1 parent 0dd4be9 commit 437ab21

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

pkg/dev_compiler/test/expression_compiler/runtime_debugger_api_test.dart

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -350,21 +350,7 @@ void runSharedTests(
350350
'runtimeKind': 'list',
351351
'length': 3,
352352
});
353-
// Old type system incorrectly returns 'dart:_interceptors|List<int>'
354-
}, skip: !setup.canaryFeatures);
355-
356-
test('getObjectMetadata (List) (old types)', () async {
357-
await driver.checkRuntimeInFrame(
358-
breakpointId: 'BP',
359-
expression: 'dart.getObjectMetadata(list)',
360-
expectedResult: {
361-
'className': 'List<int>',
362-
'libraryId': 'dart:_interceptors',
363-
'runtimeKind': 'list',
364-
'length': 3,
365-
});
366-
// Old type system incorrectly returns 'dart:_interceptors|List<int>'
367-
}, skip: setup.canaryFeatures);
353+
});
368354

369355
test('getObjectMetadata (Map)', () async {
370356
await driver.checkRuntimeInFrame(
@@ -538,15 +524,33 @@ void runSharedTests(
538524
});
539525

540526
test('getObjectMetadata (Record type)', () async {
527+
var typeName = await driver.evaluateDartExpressionInFrame(
528+
breakpointId: 'BP',
529+
expression: 'recordType.toString()',
530+
);
531+
expect(typeName, '(int, int, {String name})');
532+
541533
await driver.checkRuntimeInFrame(
542534
breakpointId: 'BP',
543535
expression: 'dart.getObjectMetadata(recordType)',
544536
expectedResult: {
545-
'className': 'RecordType',
546-
'libraryId': 'dart:_runtime',
537+
'className': 'Type',
538+
'libraryId': 'dart:core',
547539
'runtimeKind': 'recordType',
548540
'length': 3,
549541
});
542+
543+
await driver.checkInFrame(
544+
breakpointId: 'BP',
545+
expression: 'record is Record',
546+
expectedResult: 'true',
547+
);
548+
549+
await driver.checkInFrame(
550+
breakpointId: 'BP',
551+
expression: 'recordType is Type',
552+
expectedResult: 'true',
553+
);
550554
});
551555

552556
test('getObjectFieldNames (object)', () async {

sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/debugger.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,8 @@ Object getObjectMetadata(@notNull Object object) {
316316
if (_isRecordType(object)) {
317317
var elements = _recordTypeElementTypes(object);
318318
var length = _get(elements, 'length');
319-
_set(result, 'libraryId', 'dart:_runtime');
320-
_set(result, 'className', 'RecordType');
319+
_set(result, 'libraryId', 'dart:core');
320+
_set(result, 'className', 'Type');
321321
_set(result, 'runtimeKind', RuntimeObjectKind.recordType);
322322
_set(result, 'length', length);
323323
} else {

0 commit comments

Comments
 (0)