From 89af2425f23bfb127ab39c2f73e9149042715443 Mon Sep 17 00:00:00 2001 From: Nate Biggs Date: Fri, 7 Feb 2025 10:20:53 -0800 Subject: [PATCH] [ddc] Append hot restart instruction to hot reload rejection reasons. By adding this message here, any entrypoint that makes use of this for hot reload (e.g. DartPad, Flutter tools/FE server) will all surface this same message. This probably easier than having each one try to detect errors and append its own message. Change-Id: I5980d530b66da818e29403cc13407095d8b203dd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408380 Reviewed-by: Mark Zhou Commit-Queue: Nate Biggs Reviewed-by: Johnni Winther Reviewed-by: Nicholas Shahan --- pkg/dev_compiler/lib/src/command/command.dart | 3 ++- pkg/frontend_server/lib/src/javascript_bundle.dart | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/dev_compiler/lib/src/command/command.dart b/pkg/dev_compiler/lib/src/command/command.dart index b557094358b..5cc88c5db2e 100644 --- a/pkg/dev_compiler/lib/src/command/command.dart +++ b/pkg/dev_compiler/lib/src/command/command.dart @@ -374,7 +374,8 @@ Future _compile(List args, lastAcceptedComponent, compiledLibraries); if (rejectionReasons.isNotEmpty) { throw StateError( - 'Hot reload rejected due to:\n${rejectionReasons.join('\n')}'); + 'Hot reload rejected due to:\n${rejectionReasons.join('\n')}\n' + 'Use hot restart instead.'); } } var sink = File(reloadDeltaKernel).openWrite(); diff --git a/pkg/frontend_server/lib/src/javascript_bundle.dart b/pkg/frontend_server/lib/src/javascript_bundle.dart index a36402e81b5..369b468c7c9 100644 --- a/pkg/frontend_server/lib/src/javascript_bundle.dart +++ b/pkg/frontend_server/lib/src/javascript_bundle.dart @@ -90,7 +90,11 @@ class IncrementalJavaScriptBundler { // connected component graph. final List errors = _deltaInspector.compareGenerations( lastFullComponent, partialComponent); - if (errors.isNotEmpty) throw new Exception(errors.join('/n')); + if (errors.isNotEmpty) { + throw new Exception(errors.join('/n') + + '\nHot reload rejected due to unsupported changes. ' + 'Use hot restart instead.'); + } } _currentComponent = partialComponent; _updateFullComponent(lastFullComponent, partialComponent);