From 2cbdfaa2392025869f2fedf89b4220d369edd751 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Mon, 24 Mar 2025 08:15:15 -0700 Subject: [PATCH] Fine. Extract local write/readNameToIdMap functions. We used this logic twice. I pondered about extracting an extension type, but decided against it, at least for now. Change-Id: I95984c15fa0d17042fe0dc48667846ebdd72961d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417420 Commit-Queue: Konstantin Shcheglov Reviewed-by: Johnni Winther --- pkg/analyzer/lib/src/fine/requirements.dart | 67 +++++++++------------ 1 file changed, 27 insertions(+), 40 deletions(-) diff --git a/pkg/analyzer/lib/src/fine/requirements.dart b/pkg/analyzer/lib/src/fine/requirements.dart index 0b7500e5b6c..f26abd456eb 100644 --- a/pkg/analyzer/lib/src/fine/requirements.dart +++ b/pkg/analyzer/lib/src/fine/requirements.dart @@ -40,17 +40,19 @@ class BundleRequirementsManifest { factory BundleRequirementsManifest.read(SummaryDataReader reader) { var result = BundleRequirementsManifest(); + Map readNameToIdMap() { + return reader.readMap( + readKey: () => LookupName.read(reader), + readValue: () => reader.readOptionalObject( + () => ManifestItemId.read(reader), + ), + ); + } + result.topLevels.addAll( reader.readMap( readKey: () => reader.readUri(), - readValue: () { - return reader.readMap( - readKey: () => LookupName.read(reader), - readValue: () => reader.readOptionalObject( - () => ManifestItemId.read(reader), - ), - ); - }, + readValue: readNameToIdMap, ), ); @@ -60,14 +62,7 @@ class BundleRequirementsManifest { readValue: () { return reader.readMap( readKey: () => LookupName.read(reader), - readValue: () { - return reader.readMap( - readKey: () => LookupName.read(reader), - readValue: () => reader.readOptionalObject( - () => ManifestItemId.read(reader), - ), - ); - }, + readValue: readNameToIdMap, ); }, ), @@ -268,40 +263,32 @@ class BundleRequirementsManifest { } void write(BufferedSink sink) { + void writeNameToIdMap(Map map) { + sink.writeMap( + map, + writeKey: (name) => name.write(sink), + writeValue: (id) { + sink.writeOptionalObject(id, (id) { + id.write(sink); + }); + }, + ); + } + sink.writeMap( topLevels, writeKey: (uri) => sink.writeUri(uri), - writeValue: (nameToIdMap) { - sink.writeMap( - nameToIdMap, - writeKey: (name) => name.write(sink), - writeValue: (id) { - sink.writeOptionalObject(id, (id) { - id.write(sink); - }); - }, - ); - }, + writeValue: writeNameToIdMap, ); sink.writeMap( interfaceMembers, writeKey: (uri) => sink.writeUri(uri), - writeValue: (nameToIdMap) { + writeValue: (nameToInterfaceMap) { sink.writeMap( - nameToIdMap, + nameToInterfaceMap, writeKey: (name) => name.write(sink), - writeValue: (interface) { - sink.writeMap( - interface, - writeKey: (name) => name.write(sink), - writeValue: (id) { - sink.writeOptionalObject(id, (id) { - id.write(sink); - }); - }, - ); - }, + writeValue: writeNameToIdMap, ); }, );