@@ -90,6 +90,7 @@ class GlobalPackages {
9090 Future <void > activateGit (
9191 String repo,
9292 List <String >? executables, {
93+ required List <String > allowedExperiments,
9394 required bool overwriteBinStubs,
9495 String ? path,
9596 String ? ref,
@@ -127,10 +128,15 @@ class GlobalPackages {
127128 packageRef.withConstraint (VersionConstraint .any),
128129 executables,
129130 overwriteBinStubs: overwriteBinStubs,
131+ allowedExperiments: allowedExperiments,
130132 );
131133 }
132134
133- Package packageForConstraint (PackageRange dep, String dir) {
135+ Package packageForConstraint (
136+ PackageRange dep,
137+ String dir,
138+ List <String > allowedExperiments,
139+ ) {
134140 return Package (
135141 Pubspec (
136142 'pub global activate' ,
@@ -142,6 +148,7 @@ class GlobalPackages {
142148 defaultUpperBoundConstraint: null ,
143149 ),
144150 },
151+ experiments: allowedExperiments,
145152 ),
146153 dir,
147154 [],
@@ -164,12 +171,14 @@ class GlobalPackages {
164171 Future <void > activateHosted (
165172 PackageRange range,
166173 List <String >? executables, {
174+ required List <String > allowedExperiments,
167175 required bool overwriteBinStubs,
168176 String ? url,
169177 }) async {
170178 await _installInCache (
171179 range,
172180 executables,
181+ allowedExperiments: allowedExperiments,
173182 overwriteBinStubs: overwriteBinStubs,
174183 );
175184 }
@@ -231,6 +240,7 @@ class GlobalPackages {
231240 Future <void > _installInCache (
232241 PackageRange dep,
233242 List <String >? executables, {
243+ required List <String > allowedExperiments,
234244 required bool overwriteBinStubs,
235245 bool silent = false ,
236246 }) async {
@@ -239,7 +249,7 @@ class GlobalPackages {
239249
240250 final tempDir = cache.createTempDir ();
241251 // Create a dummy package with just [dep] so we can do resolution on it.
242- final root = packageForConstraint (dep, tempDir);
252+ final root = packageForConstraint (dep, tempDir, allowedExperiments );
243253
244254 // Resolve it and download its dependencies.
245255 SolveResult result;
@@ -284,6 +294,7 @@ To recompile executables, first run `$topLevelProgram pub global deactivate $nam
284294 originalLockFile ?? LockFile .empty (),
285295 lockFile,
286296 result.availableVersions,
297+ result.experiments,
287298 cache,
288299 dryRun: false ,
289300 quiet: false ,
@@ -300,19 +311,19 @@ To recompile executables, first run `$topLevelProgram pub global deactivate $nam
300311 // Load the package graph from [result] so we don't need to re-parse all
301312 // the pubspecs.
302313 final entrypoint = Entrypoint .global (
303- packageForConstraint (dep, packageDir),
314+ packageForConstraint (dep, packageDir, result.experiments ),
304315 lockFile,
305316 cache,
306317 solveResult: result,
307318 );
308319
309- await entrypoint.writePackageConfigFiles ();
320+ await entrypoint.writePackageConfigFiles (experiments : result.experiments );
310321
311322 await entrypoint.precompileExecutables ();
312323 }
313324
314325 final entrypoint = Entrypoint .global (
315- packageForConstraint (dep, _packageDir (dep.name)),
326+ packageForConstraint (dep, _packageDir (dep.name), allowedExperiments ),
316327 lockFile,
317328 cache,
318329 solveResult: result,
@@ -427,7 +438,11 @@ Consider `$topLevelProgram pub global deactivate $name`''');
427438 // For cached sources, the package itself is in the cache and the
428439 // lockfile is the one we just loaded.
429440 entrypoint = Entrypoint .global (
430- packageForConstraint (id.toRange (), _packageDir (id.name)),
441+ packageForConstraint (
442+ id.toRange (),
443+ _packageDir (id.name),
444+ [], // XXX load experiments here
445+ ),
431446 lockFile,
432447 cache,
433448 );
@@ -536,6 +551,7 @@ Try reactivating the package.
536551 entrypoint.lockFile,
537552 newLockFile,
538553 result.availableVersions,
554+ result.experiments,
539555 cache,
540556 dryRun: true ,
541557 enforceLockfile: true ,
@@ -678,6 +694,7 @@ Try reactivating the package.
678694 id.toRange (),
679695 packageExecutables,
680696 overwriteBinStubs: true ,
697+ allowedExperiments: [], // XXX
681698 silent: true ,
682699 );
683700 } else {
0 commit comments