d4t_formulas/.pub-cache/hosted/pub.dev/analyzer-7.7.1/example/library_cycles.dart
Álvaro González 1d339653d5 feat: add formula data classes with strict JSON parsing
- 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
2025-08-21 17:15:00 +02:00

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();
}