Skip to content

Commit

Permalink
[beta][ddc] Fix incorrect debugger information on record types.
Browse files Browse the repository at this point in the history
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 <kevinjchisholm@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
  • Loading branch information
Anna Gringauze authored and Commit Queue committed Jan 29, 2024
1 parent 0dd4be9 commit 437ab21
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -350,21 +350,7 @@ void runSharedTests(
'runtimeKind': 'list',
'length': 3,
});
// Old type system incorrectly returns 'dart:_interceptors|List<int>'
}, skip: !setup.canaryFeatures);

test('getObjectMetadata (List) (old types)', () async {
await driver.checkRuntimeInFrame(
breakpointId: 'BP',
expression: 'dart.getObjectMetadata(list)',
expectedResult: {
'className': 'List<int>',
'libraryId': 'dart:_interceptors',
'runtimeKind': 'list',
'length': 3,
});
// Old type system incorrectly returns 'dart:_interceptors|List<int>'
}, skip: setup.canaryFeatures);
});

test('getObjectMetadata (Map)', () async {
await driver.checkRuntimeInFrame(
Expand Down Expand Up @@ -538,15 +524,33 @@ void runSharedTests(
});

test('getObjectMetadata (Record type)', () async {
var typeName = await driver.evaluateDartExpressionInFrame(
breakpointId: 'BP',
expression: 'recordType.toString()',
);
expect(typeName, '(int, int, {String name})');

await driver.checkRuntimeInFrame(
breakpointId: 'BP',
expression: 'dart.getObjectMetadata(recordType)',
expectedResult: {
'className': 'RecordType',
'libraryId': 'dart:_runtime',
'className': 'Type',
'libraryId': 'dart:core',
'runtimeKind': 'recordType',
'length': 3,
});

await driver.checkInFrame(
breakpointId: 'BP',
expression: 'record is Record',
expectedResult: 'true',
);

await driver.checkInFrame(
breakpointId: 'BP',
expression: 'recordType is Type',
expectedResult: 'true',
);
});

test('getObjectFieldNames (object)', () async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,8 +316,8 @@ Object getObjectMetadata(@notNull Object object) {
if (_isRecordType(object)) {
var elements = _recordTypeElementTypes(object);
var length = _get(elements, 'length');
_set(result, 'libraryId', 'dart:_runtime');
_set(result, 'className', 'RecordType');
_set(result, 'libraryId', 'dart:core');
_set(result, 'className', 'Type');
_set(result, 'runtimeKind', RuntimeObjectKind.recordType);
_set(result, 'length', length);
} else {
Expand Down

0 comments on commit 437ab21

Please sign in to comment.