d4t_formulas/.pub-cache/hosted/pub.dev/analyzer-7.7.1/example/ddd06.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

91 lines
3.8 KiB
Dart

import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/file_system/overlay_file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/util/performance/operation_performance.dart';
import 'package:collection/collection.dart';
import 'package:linter/src/rules.dart';
void main() async {
var resourceProvider = OverlayResourceProvider(
PhysicalResourceProvider.INSTANCE,
);
var co19 = '/Users/scheglov/Source/Dart/sdk.git/sdk/tests/co19';
resourceProvider.setOverlay(
// '$co19/src/LanguageFeatures/Parts-with-imports/analysis_options.yaml',
'$co19/src/LanguageFeatures/Augmentation-libraries/analysis_options.yaml',
content: r'''
analyzer:
enable-experiment:
- macros
- enhanced-parts
''',
modificationStamp: 0,
);
registerLintRules();
var byteStore = MemoryByteStore();
for (var i = 0; i < 2; i++) {
var collection = AnalysisContextCollectionImpl(
sdkPath: '/Users/scheglov/Applications/dart-sdk',
resourceProvider: resourceProvider,
includedPaths: [
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analysis_server',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/linter',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analyzer',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analyzer_plugin',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analyzer/lib/src/dart/element',
// '/Users/scheglov/dart/admin-portal',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/tests/language/class/large_class_declaration_test.dart',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/_fe_analyzer_shared/lib/src/scanner/token_impl.dart',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/pkg/analyzer/test/generated/test_support.dart',
// '/Users/scheglov/dart/flutter-packages/packages/metrics_center',
'/Users/scheglov/dart/flutter-packages/packages/webview_flutter/webview_flutter_android',
// '/Users/scheglov/Source/flutter/packages/flutter/lib',
// '/Users/scheglov/Source/flutter/engine/src/flutter/lib/web_ui/lib/pointer.dart',
// '/Users/scheglov/Source/flutter/packages/flutter/lib/src/painting/alignment.dart',
// '/Users/scheglov/Source/flutter/packages/flutter/lib/src/animation/animation_controller.dart',
// '/Users/scheglov/Source/Dart/sdk.git/sdk/tests/co19/src/Language/Classes/Getters/static_getter_t03.dart',
],
byteStore: byteStore,
);
var timer = Stopwatch()..start();
for (var analysisContext in collection.contexts) {
print(analysisContext.contextRoot.root.path);
var analysisSession = analysisContext.currentSession;
for (var path in analysisContext.contextRoot.analyzedFiles().sorted()) {
if (path.endsWith('.dart')) {
print(path);
var libResult = await analysisSession.getResolvedLibrary(path);
if (libResult is ResolvedLibraryResult) {
for (var unitResult in libResult.units) {
print(' ${unitResult.path}');
var ep = '\n ';
print(' errors:$ep${unitResult.diagnostics.join(ep)}');
// print('---');
// print(unitResult.content);
// print('---');
}
}
}
}
}
print('[time: ${timer.elapsedMilliseconds} ms]');
{
var buffer = StringBuffer();
collection.scheduler.accumulatedPerformance.write(buffer: buffer);
print(buffer);
collection.scheduler.accumulatedPerformance = OperationPerformanceImpl(
'<scheduler>',
);
}
await collection.dispose();
}
}