[flutter_tools] add --null-assertions flag for debugging with null safety (#63416)
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index c691610..2a16f8e 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart
@@ -790,6 +790,7 @@ this.webEnableExpressionEvaluation = false, this.vmserviceOutFile, this.fastStart = false, + this.nullAssertions = false, }) : debuggingEnabled = true; DebuggingOptions.disabled(this.buildInfo, { @@ -821,7 +822,8 @@ deviceVmServicePort = null, vmserviceOutFile = null, fastStart = false, - webEnableExpressionEvaluation = false; + webEnableExpressionEvaluation = false, + nullAssertions = false; final bool debuggingEnabled; @@ -868,6 +870,8 @@ final String vmserviceOutFile; final bool fastStart; + final bool nullAssertions; + bool get hasObservatoryPort => hostVmServicePort != null; } @@ -993,3 +997,14 @@ @override Future<void> dispose() async { } } + +/// Append --null_assertions to any existing Dart VM flags if +/// [debuggingOptions.nullAssertions] is true. +String computeDartVmFlags(DebuggingOptions debuggingOptions) { + return <String>[ + if (debuggingOptions.dartFlags?.isNotEmpty ?? false) + debuggingOptions.dartFlags, + if (debuggingOptions.nullAssertions) + '--null_assertions', + ].join(','); +}