diff --git a/flutter_frontend_server/lib/server.dart b/flutter_frontend_server/lib/server.dart index d6a217fae3134..47d454d8e908e 100644 --- a/flutter_frontend_server/lib/server.dart +++ b/flutter_frontend_server/lib/server.dart @@ -111,13 +111,21 @@ Future starter( frontend.ProgramTransformer transformer, }) async { ArgResults options; - frontend.argParser.addMultiOption( - 'delete-tostring-package-uri', - help: 'Replaces implementations of `toString` with `super.toString()` for ' + // TODO(alexmarkov): Remove handling of --delete-tostring-package-uri option + // after it is added to Dart SDK, + // https://github.com/dart-lang/sdk/issues/46022. + final bool handleDeleteToString = + !frontend.argParser.options.containsKey('delete-tostring-package-uri'); + if (handleDeleteToString) { + frontend.argParser.addMultiOption( + 'delete-tostring-package-uri', + help: + 'Replaces implementations of `toString` with `super.toString()` for ' 'specified package', - valueHelp: 'dart:ui', - defaultsTo: const [], - ); + valueHelp: 'dart:ui', + defaultsTo: const [], + ); + } try { options = frontend.argParser.parse(args); } catch (error) { @@ -126,7 +134,8 @@ Future starter( return 1; } - final Set deleteToStringPackageUris = (options['delete-tostring-package-uri'] as List).toSet(); + final Set deleteToStringPackageUris = + (options['delete-tostring-package-uri'] as List).toSet(); if (options['train'] as bool) { if (!options.rest.isNotEmpty) { @@ -150,7 +159,9 @@ Future starter( ]); compiler ??= _FlutterFrontendCompiler( output, - transformer: frontend.ToStringTransformer(null, deleteToStringPackageUris), + transformer: handleDeleteToString + ? frontend.ToStringTransformer(null, deleteToStringPackageUris) + : null, ); await compiler.compile(input, options); @@ -170,7 +181,9 @@ Future starter( } compiler ??= _FlutterFrontendCompiler(output, - transformer: frontend.ToStringTransformer(transformer, deleteToStringPackageUris), + transformer: handleDeleteToString + ? frontend.ToStringTransformer(transformer, deleteToStringPackageUris) + : null, useDebuggerModuleNames: options['debugger-module-names'] as bool, emitDebugMetadata: options['experimental-emit-debug-metadata'] as bool, unsafePackageSerialization: