-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
r: timeoutIssue is closed due to author not providing the requested details in timeIssue is closed due to author not providing the requested details in time
Description
I'm embedding flutter_tools in a CLI app in order to capture the pub get logic and running into a Map cast issue for packages which contain generate: true in their pubspec.yaml, triggering a localizations build.
The issue is a cast of jsonDecode output to Map<String, Object> in a null-safe library (build_system/targets/localizations.dart).
Steps to Reproduce
I'm not sure why running flutter pub get does not produce the same issue, but it's only reproducible for me when embedding.
Embedding code
My embedding code looks something like this:
import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/template.dart';
import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/commands/packages.dart';
import 'package:flutter_tools/src/context_runner.dart' as flutter;
import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/isolated/mustache_template.dart';
import 'package:flutter_tools/src/runner/flutter_command_runner.dart';
await flutter.runInContext(
() async {
final runner = FlutterCommandRunner()
..addCommand(
PackagesGetCommand(action.name, action == PubAction.upgrade),
);
await runner.run([action.name, package.path]);
},
overrides: {
Pub: () => _FlutterPub(
package: package,
verbose: verbose,
pubRunner: pubRunner,
),
TemplateRenderer: () => const MustacheTemplateRenderer(),
},
);Logs
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, Object>' in type cast
#0 GenerateLocalizationsTarget.build (package:flutter_tools/src/build_system/targets/localizations.dart:66:7)
#1 _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:839:27)
<asynchronous suspension>
#2 FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:606:16)
<asynchronous suspension>
#3 generateLocalizationsSyntheticPackage (package:flutter_tools/src/dart/generate_synthetic_packages.dart:58:30)
<asynchronous suspension>
#4 PackagesGetCommand._runPubGet (package:flutter_tools/src/commands/packages.dart:131:7)
<asynchronous suspension>
#5 PackagesGetCommand.runCommand (package:flutter_tools/src/commands/packages.dart:180:7)
<asynchronous suspension>
#6 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1209:27)
<asynchronous suspension>
#7 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#8 CommandRunner.runCommand (package:args/command_runner.dart:209:13)
<asynchronous suspension>
#9 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
<asynchronous suspension>
#10 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
<asynchronous suspension>
Metadata
Metadata
Assignees
Labels
r: timeoutIssue is closed due to author not providing the requested details in timeIssue is closed due to author not providing the requested details in time
