[cfe] Add SourceLoader.isClosureContextLoweringEnabled

This is a follow-up to
https://dart-review.googlesource.com/c/sdk/+/497240/comment/275b2e79_902b4da9/

Part of https://github.com/dart-lang/sdk/issues/61572

Change-Id: I476d3ed9a5e02bc639c5848c064d89ee0d4f742e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504520
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Chloe Stefantsova
2026-05-20 06:07:28 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 58e0b77bd6
commit cbb94bc140
19 changed files with 42 additions and 136 deletions
@@ -634,13 +634,7 @@ mixin _ExtensionTypeConstructorEncodingMixin<T extends DeclarationBuilder>
typeArguments = [];
}
_thisVariable =
libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled
_thisVariable = libraryBuilder.loader.isClosureContextLoweringEnabled
?
// Coverage-ignore(suite): Not run.
(new PositionalParameter(
@@ -650,9 +650,6 @@ class RegularFieldDeclaration
.builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
);
} else {
@@ -1343,12 +1343,7 @@ class AbstractOrExternalFieldEncoding implements FieldEncoding {
.attachMember(_getter!);
if (!_fragment.modifiers.isFinal) {
VariableDeclaration parameter =
libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled
libraryBuilder.loader.isClosureContextLoweringEnabled
?
// Coverage-ignore(suite): Not run.
(new PositionalParameter(
@@ -289,12 +289,8 @@ class RegularGetterDeclaration
fileUri: _fragment.fileUri,
nameOffset: _fragment.nameOffset,
nameLength: _fragment.name.length,
isClosureContextLoweringEnabled: libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
libraryBuilder.loader.isClosureContextLoweringEnabled,
);
}
_encoding.ensureTypes(libraryBuilder, membersBuilder.hierarchyBuilder);
@@ -263,9 +263,6 @@ class MethodDeclarationImpl
isClosureContextLoweringEnabled: enclosingClassBuilder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
);
}
@@ -1050,13 +1050,8 @@ class _ExtensionInstanceMethodStrategy implements MethodEncodingStrategy {
onTypeBuilder: declarationBuilder.onType,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return fragment.isOperator
? new _ExtensionInstanceOperatorEncoding(
@@ -1188,13 +1183,8 @@ class _ExtensionTypeInstanceMethodStrategy implements MethodEncodingStrategy {
typeParameterFactory: typeParameterFactory,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return fragment.isOperator
? new _ExtensionTypeInstanceOperatorEncoding(
@@ -413,13 +413,8 @@ class PrimaryConstructorFieldDeclaration
nameOffset: nameOffset,
nameLength: _fragment.name.length,
isAssignable: hasSetter,
isClosureContextLoweringEnabled: classBuilder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
classBuilder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
} else {
type.build(
+8 -28
View File
@@ -190,13 +190,8 @@ class ExtensionInstancePropertyEncodingStrategy
onTypeBuilder: declarationBuilder.onType,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return new ExtensionInstanceGetterEncoding(
fragment,
@@ -221,13 +216,8 @@ class ExtensionInstancePropertyEncodingStrategy
onTypeBuilder: declarationBuilder.onType,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return new ExtensionInstanceSetterEncoding(
fragment,
@@ -280,13 +270,8 @@ class ExtensionTypeInstancePropertyEncodingStrategy
typeParameterFactory: typeParameterFactory,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return new ExtensionTypeInstanceGetterEncoding(
fragment,
@@ -311,13 +296,8 @@ class ExtensionTypeInstancePropertyEncodingStrategy
typeParameterFactory: typeParameterFactory,
fileUri: fragment.fileUri,
fileOffset: fragment.nameOffset,
isClosureContextLoweringEnabled: builder
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
builder.libraryBuilder.loader.isClosureContextLoweringEnabled,
);
return new ExtensionTypeInstanceSetterEncoding(
fragment,
@@ -426,12 +426,7 @@ class BodyBuilderImpl extends StackListenerImpl
uri.isScheme("org-dartlang-sdk");
bool get isClosureContextLoweringEnabled {
return libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
return libraryBuilder.loader.isClosureContextLoweringEnabled;
}
@override
@@ -363,12 +363,8 @@ DelayedDefaultValueCloner _createParameters(
Substitution substitution,
SourceLibraryBuilder libraryBuilder,
) {
bool isClosureContextLoweringEnabled = libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool isClosureContextLoweringEnabled =
libraryBuilder.loader.isClosureContextLoweringEnabled;
VariableDeclaration createTearOffParameter(
VariableDeclaration constructorParameter, {
@@ -1078,12 +1078,8 @@ class KernelTarget {
bool hasTypeDependency = false;
Substitution substitution = Substitution.fromMap(substitutionMap);
bool isClosureContextLoweringEnabled = libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool isClosureContextLoweringEnabled =
libraryBuilder.loader.isClosureContextLoweringEnabled;
VariableDeclaration copyFormal(
VariableDeclaration formal, {
+2 -6
View File
@@ -940,12 +940,8 @@ class Resolver {
fileUri: fileUri,
hasImmediatelyDeclaredInitializer: false,
wildcardIndex: wildcardIndex,
isClosureContextLoweringEnabled: libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
libraryBuilder.loader.isClosureContextLoweringEnabled,
variable: formal,
);
},
@@ -377,11 +377,8 @@ class BuilderFactory {
ConstructorEncodingStrategy encodingStrategy =
new ConstructorEncodingStrategy(
_declarationBuilder!,
isClosureContextLoweringEnabled: _loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
_loader.isClosureContextLoweringEnabled,
);
ConstructorReferences constructorReferences = new ConstructorReferences(
@@ -2263,12 +2263,8 @@ class FragmentFactoryImpl implements FragmentFactory {
hasImmediatelyDeclaredInitializer: initializerToken != null,
wildcardIndex: wildcardIndex,
publicName: publicName,
isClosureContextLoweringEnabled: _compilationUnit
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled:
_compilationUnit.loader.isClosureContextLoweringEnabled,
);
return formal;
}
@@ -239,12 +239,8 @@ class SourceEnumBuilder extends SourceClassBuilder {
}
}
if (needsSynthesizedDefaultConstructor) {
bool isClosureContextLoweringEnabled = libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool isClosureContextLoweringEnabled =
libraryBuilder.loader.isClosureContextLoweringEnabled;
ConstructorEncodingStrategy encodingStrategy =
new ConstructorEncodingStrategy(
this,
@@ -216,6 +216,10 @@ class SourceLoader extends Loader implements ProblemReportingHelper {
return null;
}
bool get isClosureContextLoweringEnabled {
return target.backendTarget.flags.isClosureContextLoweringEnabled;
}
int byteCount = 0;
UriOffset? currentUriForCrashReporting;
@@ -2971,8 +2975,7 @@ severity: $severity
hierarchyBuilder,
sourceClasses,
sourceExtensionTypes,
isClosureContextLoweringEnabled:
target.backendTarget.flags.isClosureContextLoweringEnabled,
isClosureContextLoweringEnabled: isClosureContextLoweringEnabled,
);
typeInferenceEngine.membersBuilder = membersBuilder;
ticker.logMs("Built class hierarchy members");
@@ -149,13 +149,8 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
// TODO(cstefantsova): Replace this flag by implementing the default
// strategy.
bool get isClosureContextLoweringEnabled => _inferrer
.libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool get isClosureContextLoweringEnabled =>
_inferrer.libraryBuilder.loader.isClosureContextLoweringEnabled;
AssignedVariablesImpl get assignedVariables => _inferrer.assignedVariables;
@@ -376,12 +376,8 @@ class TypeInferenceEngineImpl extends TypeInferenceEngine {
InferenceDataForTesting? dataForTesting,
}) {
AssignedVariablesImpl assignedVariables;
bool isClosureContextLoweringEnabled = libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool isClosureContextLoweringEnabled =
libraryBuilder.loader.isClosureContextLoweringEnabled;
if (dataForTesting != null) {
// Coverage-ignore-block(suite): Not run.
dataForTesting.flowAnalysisResult.assignedVariables =
@@ -183,12 +183,8 @@ class TypeInferrerImpl implements TypeInferrer {
libraryBuilder.libraryFeatures.soundFlowAnalysis.isEnabled,
);
bool get isClosureContextLoweringEnabled => libraryBuilder
.loader
.target
.backendTarget
.flags
.isClosureContextLoweringEnabled;
bool get isClosureContextLoweringEnabled =>
libraryBuilder.loader.isClosureContextLoweringEnabled;
InferenceVisitorBase _createInferenceVisitor({
required Uri fileUri,