Skip to content

Commit

Permalink
Prepare to move --delete-tostring-package-uri option to Dart SDK (#26196
Browse files Browse the repository at this point in the history
)

This change prepares Flutter front-end server to the migration of --delete-tostring-package-uri option to Dart SDK. This is needed to call toString transformation before tree shaking.

dart-lang/sdk#46022
  • Loading branch information
alexmarkov committed May 17, 2021
1 parent fb91366 commit 62e0951
Showing 1 changed file with 22 additions and 9 deletions.
31 changes: 22 additions & 9 deletions flutter_frontend_server/lib/server.dart
Expand Up @@ -111,13 +111,21 @@ Future<int> 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 <String>[],
);
valueHelp: 'dart:ui',
defaultsTo: const <String>[],
);
}
try {
options = frontend.argParser.parse(args);
} catch (error) {
Expand All @@ -126,7 +134,8 @@ Future<int> starter(
return 1;
}

final Set<String> deleteToStringPackageUris = (options['delete-tostring-package-uri'] as List<String>).toSet();
final Set<String> deleteToStringPackageUris =
(options['delete-tostring-package-uri'] as List<String>).toSet();

if (options['train'] as bool) {
if (!options.rest.isNotEmpty) {
Expand All @@ -150,7 +159,9 @@ Future<int> starter(
]);
compiler ??= _FlutterFrontendCompiler(
output,
transformer: frontend.ToStringTransformer(null, deleteToStringPackageUris),
transformer: handleDeleteToString
? frontend.ToStringTransformer(null, deleteToStringPackageUris)
: null,
);

await compiler.compile(input, options);
Expand All @@ -170,7 +181,9 @@ Future<int> 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:
Expand Down

0 comments on commit 62e0951

Please sign in to comment.