Skip to content

Commit 279d936

Browse files
authored
Remove special casing around injected flutter_gen package (#4604)
1 parent 9596df0 commit 279d936

File tree

4 files changed

+3
-81
lines changed

4 files changed

+3
-81
lines changed

lib/src/entrypoint.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ See $workspacesDocUrl for more information.''',
282282
// an up-to-date package-config.
283283
await ensureUpToDate(workspaceRoot.dir, cache: cache);
284284
final packages = {
285-
for (var packageEntry in packageConfig.nonInjectedPackages)
285+
for (var packageEntry in packageConfig.packages)
286286
packageEntry.name: Package.load(
287287
packageEntry.resolvedRootDir(packageConfigPath),
288288
expectedName: packageEntry.name,
@@ -952,7 +952,7 @@ To update `$lockFilePath` run `$topLevelProgram pub get`$suffix without
952952

953953
final packagePathsMapping = <String, String>{};
954954

955-
final packagesToCheck = packageConfig.nonInjectedPackages;
955+
final packagesToCheck = packageConfig.packages;
956956
for (final pkg in packagesToCheck) {
957957
// Pub always makes a packageUri of lib/
958958
if (pkg.packageUri == null || pkg.packageUri.toString() != 'lib/') {
@@ -982,7 +982,7 @@ To update `$lockFilePath` run `$topLevelProgram pub get`$suffix without
982982

983983
// Check if language version specified in the `package_config.json` is
984984
// correct. This is important for path dependencies as these can mutate.
985-
for (final pkg in packageConfig.nonInjectedPackages) {
985+
for (final pkg in packageConfig.packages) {
986986
if (pkg.name == root.name) continue;
987987
final id = lockFile.packages[pkg.name];
988988
if (id == null) {

lib/src/package_config.dart

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,22 +144,8 @@ class PackageConfig {
144144
'generator': generator,
145145
'generatorVersion': generatorVersion?.toString(),
146146
}..addAll(additionalProperties);
147-
148-
// We allow the package called 'flutter_gen' to be injected into
149-
// package_config.
150-
//
151-
// This is somewhat a hack. But it allows flutter to generate code in a
152-
// package as it likes.
153-
//
154-
// See https://github.com/flutter/flutter/issues/73870 .
155-
Iterable<PackageConfigEntry> get nonInjectedPackages =>
156-
packages.where((package) => !_isInjectedFlutterGenPackage(package));
157147
}
158148

159-
bool _isInjectedFlutterGenPackage(PackageConfigEntry package) =>
160-
package.name == 'flutter_gen' &&
161-
package.rootUri.toString() == 'flutter_gen';
162-
163149
class PackageConfigEntry {
164150
/// Package name.
165151
String name;

test/embedding/embedding_test.dart

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -99,30 +99,6 @@ Future<void> main() async {
9999
File(snapshot).parent.deleteSync(recursive: true);
100100
});
101101

102-
test('Can depend on package:flutter_gen', () async {
103-
// Regression test for https://github.com/dart-lang/pub/issues/3314.
104-
final server = await servePackages();
105-
server.serve(
106-
'flutter_gen',
107-
'1.0.0',
108-
contents: [
109-
d.dir('bin', [d.file('flutter_gen.dart', 'main() {print("hi");}')]),
110-
],
111-
);
112-
113-
await d.appDir(dependencies: {'flutter_gen': '^1.0.0'}).create();
114-
await pubGet();
115-
final buffer = StringBuffer();
116-
117-
await runEmbeddingToBuffer(
118-
['run', 'flutter_gen'],
119-
buffer,
120-
workingDirectory: d.path(appPath),
121-
environment: getPubTestEnvironment(),
122-
);
123-
expect(buffer.toString(), contains('hi'));
124-
});
125-
126102
testWithGolden('run works, though hidden', (ctx) async {
127103
await servePackages();
128104
await d.dir(appPath, [

test/embedding/ensure_pubspec_resolved.dart

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
// embedding_test.dart
88

99
import 'dart:async';
10-
import 'dart:convert';
1110
import 'dart:io';
1211

1312
import 'package:path/path.dart' as p;
@@ -37,45 +36,6 @@ void testEnsurePubspecResolved() {
3736
await pubGet();
3837
});
3938

40-
test(
41-
'does not require a pub get '
42-
'if a `flutter_gen` package is injected into package_config.json',
43-
() async {
44-
await d.dir('bar', [
45-
d.pubspec({'name': 'bar'}),
46-
]).create();
47-
await d.dir(appPath, [
48-
d.appPubspec(
49-
dependencies: {
50-
'bar': {'path': '../bar'},
51-
},
52-
),
53-
]).create();
54-
55-
await pubGet();
56-
57-
final packageConfig = p.join(
58-
d.sandbox,
59-
'myapp',
60-
'.dart_tool',
61-
'package_config.json',
62-
);
63-
final contents =
64-
json.decode(File(packageConfig).readAsStringSync()) as Map;
65-
(contents['packages'] as List).add({
66-
'name': 'flutter_gen',
67-
'rootUri': 'flutter_gen',
68-
'languageVersion': '2.8',
69-
});
70-
writeTextFile(packageConfig, json.encode(contents));
71-
72-
await runPub(
73-
args: ['run', 'bin/script.dart'],
74-
output: endsWith('hello!'),
75-
);
76-
},
77-
);
78-
7939
group('Does an implicit pub get if', () {
8040
test("there's no lockfile", () async {
8141
File(p.join(d.sandbox, 'myapp/pubspec.lock')).deleteSync();

0 commit comments

Comments
 (0)