findStaleGeneratedFiles method
Returns *.g.dart files whose companion source file no longer declares
them via a part '*.g.dart'; directive — i.e. stale leftovers.
Implementation
List<File> findStaleGeneratedFiles() {
final stale = <File>[];
for (final gFile in listGeneratedFiles()) {
final sourcePath = gFile.path.replaceAll('.g.dart', '.dart');
final sourceFile = File(sourcePath);
if (!sourceFile.existsSync()) {
stale.add(gFile);
continue;
}
final sourceContent = sourceFile.readAsStringSync();
final basename = p.basename(gFile.path);
final hasPartDirective = RegExp(
"part\\s+'${RegExp.escape(basename)}'",
).hasMatch(sourceContent);
if (!hasPartDirective) stale.add(gFile);
}
return stale;
}