CompileContext class abstract

Execution-local static state for the current compilation.

Such state includes:

  • Various flags or modes that are conditionally enabled.
  • Ability to report diagnostics related to the current compilation.

When the compiler is running as a worker (i.e. long-running), this context refers to the current compilation occuring (where multiple may occur over the lifecycle of the compiler).

When the compiler or components of the compiler are running in a test it is required to statically initialize one by using overrideForTesting.

Annotations
  • @sealed

Constructors

CompileContext(AssetId libraryPath, {required Map<String, Set<String>> policyExceptions, required Map<String, Set<String>> policyExceptionsInPackages, required bool enableDevTools, required bool isNullSafe})
Creates a CompileContext for the provided libraryPath.
factory
CompileContext.forTesting({bool emitNullSafeCode, bool isDevToolsEnabled, bool validateMissingDirectives})
Creates a standalone CompileContext with pre-configured flags.
const
factory

Properties

emitNullSafeCode → bool
Whether to emit code that supports https://dart.cn/null-safety.
no setter
hashCode → int
The hash code for this object.
no setterinherited
isDevToolsEnabled → bool
Whether to emit code that supports developer tooling.
no setter
path → String
Path of the file being compiled.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
validateMissingDirectives → bool
Whether to issue a compile-time error when directives appear missing.
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reportAndRecover(BuildError error) → void
Reports an error or exception that does not need to suspend compilation.
throwRecoverableErrors() → void
Throws any errors collected via reportAndRecover.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Properties

current → CompileContext
Currently executing context based on Zone.current[CompileContext].
no setter

Static Methods

overrideForTesting([CompileContext context = const _TestCompileContext()]) → void
Overrides CompileContext.current to return context.
removeTestingOverride() → void
Unsets the overrideForTesting instance, defaulting to normal behavior.