Skip to content

Commit 26d1da4

Browse files
authored
Fix error in type cast. (#97778)
1 parent 1fcb076 commit 26d1da4

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

packages/flutter_tools/lib/src/device.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -980,7 +980,7 @@ class DebuggingOptions {
980980
debuggingEnabled: (json['debuggingEnabled'] as bool?)!,
981981
startPaused: (json['startPaused'] as bool?)!,
982982
dartFlags: (json['dartFlags'] as String?)!,
983-
dartEntrypointArgs: ((json['dartEntrypointArgs'] as List<String>?)?.cast<String>())!,
983+
dartEntrypointArgs: ((json['dartEntrypointArgs'] as List<dynamic>?)?.cast<String>())!,
984984
disableServiceAuthCodes: (json['disableServiceAuthCodes'] as bool?)!,
985985
enableDds: (json['enableDds'] as bool?)!,
986986
enableSoftwareRendering: (json['enableSoftwareRendering'] as bool?)!,

packages/flutter_tools/test/general.shard/device_test.dart

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import 'package:flutter_tools/src/base/io.dart';
99
import 'package:flutter_tools/src/base/logger.dart';
1010
import 'package:flutter_tools/src/base/terminal.dart';
1111
import 'package:flutter_tools/src/base/user_messages.dart';
12+
import 'package:flutter_tools/src/base/utils.dart';
1213
import 'package:flutter_tools/src/build_info.dart';
14+
import 'package:flutter_tools/src/convert.dart';
1315
import 'package:flutter_tools/src/device.dart';
1416
import 'package:flutter_tools/src/project.dart';
1517
import 'package:test/fake.dart';
@@ -508,6 +510,29 @@ void main() {
508510
expect(computeDartVmFlags(DebuggingOptions.enabled(BuildInfo.debug, nullAssertions: true)), '--null_assertions');
509511
expect(computeDartVmFlags(DebuggingOptions.enabled(BuildInfo.debug, dartFlags: '--foo', nullAssertions: true)), '--foo,--null_assertions');
510512
});
513+
514+
group('JSON encode DebuggingOptions', () {
515+
testWithoutContext('can preserve the original options', () {
516+
final DebuggingOptions original = DebuggingOptions.enabled(
517+
BuildInfo.debug,
518+
startPaused: true,
519+
disableServiceAuthCodes: true,
520+
enableDds: false,
521+
dartEntrypointArgs: <String>['a', 'b'],
522+
dartFlags: 'c',
523+
deviceVmServicePort: 1234,
524+
);
525+
final String jsonString = json.encode(original.toJson());
526+
final Map<String, dynamic> decoded = castStringKeyedMap(json.decode(jsonString))!;
527+
final DebuggingOptions deserialized = DebuggingOptions.fromJson(decoded, BuildInfo.debug);
528+
expect(deserialized.startPaused, original.startPaused);
529+
expect(deserialized.disableServiceAuthCodes, original.disableServiceAuthCodes);
530+
expect(deserialized.enableDds, original.enableDds);
531+
expect(deserialized.dartEntrypointArgs, original.dartEntrypointArgs);
532+
expect(deserialized.dartFlags, original.dartFlags);
533+
expect(deserialized.deviceVmServicePort, original.deviceVmServicePort);
534+
});
535+
});
511536
}
512537

513538
class TestDeviceManager extends DeviceManager {

0 commit comments

Comments
 (0)