From df5a3d86781ad0b5fc573216b93474fbb98b3557 Mon Sep 17 00:00:00 2001 From: Nate Biggs Date: Fri, 12 Jan 2024 21:51:51 +0000 Subject: [PATCH] [dart2js] Fix dump-info tests by starting indexing at 0 instead of 1. Also should cache on `serializedId` rather than just the `name`. Change-Id: I16e095fea5f320d39d55374ce354b9302c3a1e75 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346024 Reviewed-by: Sigmund Cherem Commit-Queue: Nate Biggs --- pkg/dart2js_info/lib/json_info_codec.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/dart2js_info/lib/json_info_codec.dart b/pkg/dart2js_info/lib/json_info_codec.dart index 6624e8f3825..3e2225b6b5d 100644 --- a/pkg/dart2js_info/lib/json_info_codec.dart +++ b/pkg/dart2js_info/lib/json_info_codec.dart @@ -375,8 +375,12 @@ class AllInfoToJsonConverter extends Converter // longName isn't guaranteed to create unique serializedIds for some info // constructs (such as closures), so we disambiguate here. - final count = idCounter.update(name, (v) => v + 1, ifAbsent: () => 0); - final id = Id(info.kind, count == 0 ? name : '$name%$count'); + Id id = Id(info.kind, name); + final count = + idCounter.update(id.serializedId, (v) => v + 1, ifAbsent: () => 0); + if (count > 0) { + id = Id(info.kind, '$name%${count - 1}'); + } return ids[info] = id; }