Remove special casing around injected flutter_gen package (#4604)
diff --git a/lib/src/entrypoint.dart b/lib/src/entrypoint.dart index 1de6570..3f2be96 100644 --- a/lib/src/entrypoint.dart +++ b/lib/src/entrypoint.dart
@@ -282,7 +282,7 @@ // an up-to-date package-config. await ensureUpToDate(workspaceRoot.dir, cache: cache); final packages = { - for (var packageEntry in packageConfig.nonInjectedPackages) + for (var packageEntry in packageConfig.packages) packageEntry.name: Package.load( packageEntry.resolvedRootDir(packageConfigPath), expectedName: packageEntry.name, @@ -952,7 +952,7 @@ final packagePathsMapping = <String, String>{}; - final packagesToCheck = packageConfig.nonInjectedPackages; + final packagesToCheck = packageConfig.packages; for (final pkg in packagesToCheck) { // Pub always makes a packageUri of lib/ if (pkg.packageUri == null || pkg.packageUri.toString() != 'lib/') { @@ -982,7 +982,7 @@ // Check if language version specified in the `package_config.json` is // correct. This is important for path dependencies as these can mutate. - for (final pkg in packageConfig.nonInjectedPackages) { + for (final pkg in packageConfig.packages) { if (pkg.name == root.name) continue; final id = lockFile.packages[pkg.name]; if (id == null) {
diff --git a/lib/src/package_config.dart b/lib/src/package_config.dart index c5d330b..ffffe59 100644 --- a/lib/src/package_config.dart +++ b/lib/src/package_config.dart
@@ -144,22 +144,8 @@ 'generator': generator, 'generatorVersion': generatorVersion?.toString(), }..addAll(additionalProperties); - - // We allow the package called 'flutter_gen' to be injected into - // package_config. - // - // This is somewhat a hack. But it allows flutter to generate code in a - // package as it likes. - // - // See https://github.com/flutter/flutter/issues/73870 . - Iterable<PackageConfigEntry> get nonInjectedPackages => - packages.where((package) => !_isInjectedFlutterGenPackage(package)); } -bool _isInjectedFlutterGenPackage(PackageConfigEntry package) => - package.name == 'flutter_gen' && - package.rootUri.toString() == 'flutter_gen'; - class PackageConfigEntry { /// Package name. String name;
diff --git a/test/embedding/embedding_test.dart b/test/embedding/embedding_test.dart index 83176d8..772cd5a 100644 --- a/test/embedding/embedding_test.dart +++ b/test/embedding/embedding_test.dart
@@ -99,30 +99,6 @@ File(snapshot).parent.deleteSync(recursive: true); }); - test('Can depend on package:flutter_gen', () async { - // Regression test for https://github.com/dart-lang/pub/issues/3314. - final server = await servePackages(); - server.serve( - 'flutter_gen', - '1.0.0', - contents: [ - d.dir('bin', [d.file('flutter_gen.dart', 'main() {print("hi");}')]), - ], - ); - - await d.appDir(dependencies: {'flutter_gen': '^1.0.0'}).create(); - await pubGet(); - final buffer = StringBuffer(); - - await runEmbeddingToBuffer( - ['run', 'flutter_gen'], - buffer, - workingDirectory: d.path(appPath), - environment: getPubTestEnvironment(), - ); - expect(buffer.toString(), contains('hi')); - }); - testWithGolden('run works, though hidden', (ctx) async { await servePackages(); await d.dir(appPath, [
diff --git a/test/embedding/ensure_pubspec_resolved.dart b/test/embedding/ensure_pubspec_resolved.dart index a6160f1..ebc6599 100644 --- a/test/embedding/ensure_pubspec_resolved.dart +++ b/test/embedding/ensure_pubspec_resolved.dart
@@ -7,7 +7,6 @@ // embedding_test.dart import 'dart:async'; -import 'dart:convert'; import 'dart:io'; import 'package:path/path.dart' as p; @@ -37,45 +36,6 @@ await pubGet(); }); - test( - 'does not require a pub get ' - 'if a `flutter_gen` package is injected into package_config.json', - () async { - await d.dir('bar', [ - d.pubspec({'name': 'bar'}), - ]).create(); - await d.dir(appPath, [ - d.appPubspec( - dependencies: { - 'bar': {'path': '../bar'}, - }, - ), - ]).create(); - - await pubGet(); - - final packageConfig = p.join( - d.sandbox, - 'myapp', - '.dart_tool', - 'package_config.json', - ); - final contents = - json.decode(File(packageConfig).readAsStringSync()) as Map; - (contents['packages'] as List).add({ - 'name': 'flutter_gen', - 'rootUri': 'flutter_gen', - 'languageVersion': '2.8', - }); - writeTextFile(packageConfig, json.encode(contents)); - - await runPub( - args: ['run', 'bin/script.dart'], - output: endsWith('hello!'), - ); - }, - ); - group('Does an implicit pub get if', () { test("there's no lockfile", () async { File(p.join(d.sandbox, 'myapp/pubspec.lock')).deleteSync();