@@ -771,10 +771,8 @@ class PubspecYaml {
771
771
}
772
772
} else {
773
773
// We're in a section we care about. Try to parse out the dependency:
774
- final PubspecDependency ? dependency = PubspecDependency .parse (line, filename: filename);
774
+ final PubspecDependency ? dependency = PubspecDependency .parse (line, filename: filename, isDevDependency : seenDev );
775
775
if (dependency != null ) { // We got one!
776
- // Track whether or not this a dev dependency.
777
- dependency.isDevDependency = seenDev;
778
776
result.add (dependency);
779
777
if (dependency.kind == DependencyKind .unknown) {
780
778
// If we didn't get a version number, then we need to be ready to
@@ -1198,9 +1196,14 @@ class PubspecDependency extends PubspecLine {
1198
1196
required DependencyKind kind,
1199
1197
required this .version,
1200
1198
required this .sourcePath,
1199
+ required this .isDevDependency,
1201
1200
}) : _kind = kind;
1202
1201
1203
- static PubspecDependency ? parse (String line, { required String filename }) {
1202
+ static PubspecDependency ? parse (
1203
+ String line, {
1204
+ required String filename,
1205
+ required bool isDevDependency,
1206
+ }) {
1204
1207
// We recognize any line that:
1205
1208
// * starts with exactly two spaces, no more or less
1206
1209
// * has some content, then a colon
@@ -1249,15 +1252,23 @@ class PubspecDependency extends PubspecLine {
1249
1252
if (colonIndex != - 1 ) {
1250
1253
version = line.substring (colonIndex + 1 , hashIndex != - 1 ? hashIndex : line.length).trim ();
1251
1254
}
1252
- return PubspecDependency (line, package, suffix, isTransitive: isTransitive, version: version, kind: stripped.isEmpty ? DependencyKind .unknown : DependencyKind .normal, sourcePath: filename);
1255
+ return PubspecDependency (
1256
+ line,
1257
+ package,
1258
+ suffix,
1259
+ isTransitive: isTransitive,
1260
+ version: version,
1261
+ kind: stripped.isEmpty ? DependencyKind .unknown : DependencyKind .normal, sourcePath: filename,
1262
+ isDevDependency: isDevDependency,
1263
+ );
1253
1264
}
1254
1265
1255
1266
final String name; // the package name
1256
1267
final String suffix; // any trailing comment we found
1257
1268
final String version; // the version string if found, or blank.
1258
1269
final bool isTransitive; // whether the suffix matched kTransitiveMagicString
1259
1270
final String sourcePath; // the filename of the pubspec.yaml file, for error messages
1260
- late bool isDevDependency; // Whether this dependency is under the `dev dependencies` section.
1271
+ final bool isDevDependency; // Whether this dependency is under the `dev dependencies` section.
1261
1272
1262
1273
DependencyKind get kind => _kind;
1263
1274
DependencyKind _kind = DependencyKind .normal;
@@ -1274,8 +1285,7 @@ class PubspecDependency extends PubspecLine {
1274
1285
/// dependencies/dev_dependencies section, or a dependency_overrides section.
1275
1286
/// We track this so that we can put ourselves in the right section when
1276
1287
/// generating the fake pubspec.yaml.
1277
- bool get lockIsOverride => _lockIsOverride;
1278
- late bool _lockIsOverride;
1288
+ bool _lockIsOverride = false ;
1279
1289
1280
1290
static const String _pathPrefix = ' path: ' ;
1281
1291
static const String _sdkPrefix = ' sdk: ' ;
@@ -1372,7 +1382,7 @@ class PubspecDependency extends PubspecLine {
1372
1382
}
1373
1383
break ;
1374
1384
case DependencyKind .path:
1375
- if (lockIsOverride ) {
1385
+ if (_lockIsOverride ) {
1376
1386
dependencies.writeln (' $name : $versionToUse ' );
1377
1387
overrides.writeln (' $name :' );
1378
1388
overrides.writeln (' path: $_lockTarget ' );
@@ -1382,7 +1392,7 @@ class PubspecDependency extends PubspecLine {
1382
1392
}
1383
1393
break ;
1384
1394
case DependencyKind .sdk:
1385
- if (lockIsOverride ) {
1395
+ if (_lockIsOverride ) {
1386
1396
dependencies.writeln (' $name : $versionToUse ' );
1387
1397
overrides.writeln (' $name :' );
1388
1398
overrides.writeln (' sdk: $_lockTarget ' );
@@ -1392,7 +1402,7 @@ class PubspecDependency extends PubspecLine {
1392
1402
}
1393
1403
break ;
1394
1404
case DependencyKind .git:
1395
- if (lockIsOverride ) {
1405
+ if (_lockIsOverride ) {
1396
1406
dependencies.writeln (' $name : $versionToUse ' );
1397
1407
overrides.writeln (' $name :' );
1398
1408
overrides.writeln (lockLine);
0 commit comments