| // Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// Facades for [Compiler] used from other parts of the system. |
| // TODO(48820): delete after the migration is complete. |
| library compiler.src.compiler_interfaces; |
| |
| import '../compiler_api.dart' show CompilerOutput, Diagnostic; |
| |
| import 'common/tasks.dart' show Measurer; |
| import 'deferred_load/program_split_constraints/nodes.dart' show ConstraintData; |
| import 'diagnostics/diagnostic_listener.dart' show DiagnosticMessage; |
| import 'diagnostics/diagnostic_listener.dart' show DiagnosticReporter; |
| import 'diagnostics/source_span.dart'; |
| import 'diagnostics/spannable.dart'; |
| import 'elements/entities.dart' show Entity; |
| import 'kernel/kernel_strategy_migrated.dart' |
| show KernelFrontendStrategyForDeferredLoading; |
| import 'options.dart' show CompilerOptions; |
| import 'universe/world_impact.dart' show WorldImpact; |
| |
| /// Subset of [Compiler] needed by deferred loading. |
| /// |
| /// See definitions on [Compiler] for documentation. |
| abstract class CompilerDeferredLoadingFacade { |
| bool get compilationFailed; |
| Measurer get measurer; |
| DiagnosticReporter get reporter; |
| Map<Entity, WorldImpact> get impactCache; |
| CompilerOptions get options; |
| KernelFrontendStrategyForDeferredLoading get frontendStrategy; |
| CompilerOutput get outputProvider; |
| ConstraintData? get programSplitConstraintsData; |
| } |
| |
| /// Subset of [Compiler] needed by `DiagnosticListener`. |
| /// |
| /// See definitions on [Compiler] for documentation. |
| abstract class CompilerDiagnosticsFacade { |
| CompilerOptions get options; |
| |
| bool inUserCode(Entity element); |
| |
| Uri getCanonicalUri(Entity element); |
| |
| void reportDiagnostic(DiagnosticMessage message, |
| List<DiagnosticMessage> infos, Diagnostic kind); |
| |
| void fatalDiagnosticReported(DiagnosticMessage message, |
| List<DiagnosticMessage> infos, Diagnostic kind); |
| |
| bool get compilationFailed; |
| |
| SourceSpan spanFromSpannable(Spannable spannable, Entity? currentElement); |
| } |