- Add VariableSpec class with magnitude field validation - Add Formula class supporting multiple input/output variables - Support d4rt_code as string or object with code field - Add comprehensive tests for parsing and serialization - Fix broken test import in pruebas_d4rt_test.dart Follows README.md format requirements exactly
33 lines
1.1 KiB
Dart
33 lines
1.1 KiB
Dart
import 'dart:collection';
|
|
|
|
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
|
|
import 'package:analyzer/src/dart/analysis/file_state.dart';
|
|
import 'package:analyzer/src/dart/analysis/library_graph.dart';
|
|
|
|
void main() async {
|
|
var collection = AnalysisContextCollectionImpl(
|
|
includedPaths: ['/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analyzer/lib'],
|
|
);
|
|
|
|
var analysisContext = collection.contexts.single;
|
|
var fsState = analysisContext.driver.fsState;
|
|
|
|
var libraryCycles = HashSet<LibraryCycle>.identity();
|
|
for (var path in analysisContext.contextRoot.analyzedFiles()) {
|
|
if (path.endsWith('.dart')) {
|
|
var fileState = fsState.getFileForPath(path);
|
|
if (fileState.kind case LibraryFileKind libraryKind) {
|
|
var libraryCycle = libraryKind.libraryCycle;
|
|
if (libraryCycles.add(libraryCycle)) {
|
|
var libraries = libraryCycle.libraries;
|
|
if (libraries.length > 5) {
|
|
print('[${libraries.length}]');
|
|
print(' ${libraryCycle.libraryUris.join('\n ')}');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
await collection.dispose();
|
|
}
|