Branch: refs/heads/main
Home:
https://github.com/dart-lang/sdk
Commit: b78ce3604b562780392075d0239f87c8995197fb
https://github.com/dart-lang/sdk/commit/b78ce3604b562780392075d0239f87c8995197fb
Author: Johnni Winther <
johnni...@google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M pkg/front_end/lib/src/builder/formal_parameter_builder.dart
M pkg/front_end/lib/src/kernel/body_builder.dart
M pkg/front_end/testcases/extension_types/with_dependencies/issue53209_2/main.dart.strong.expect
M pkg/front_end/testcases/extension_types/with_dependencies/issue53209_2/main.dart.strong.modular.expect
M pkg/front_end/testcases/extension_types/with_dependencies/issue53209_2/main.dart.strong.outline.expect
M pkg/front_end/testcases/extension_types/with_dependencies/issue53209_2/main.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/class_primary_declaring_parameters.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/class_primary_declaring_parameters.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/class_primary_declaring_parameters.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/class_primary_declaring_parameters.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/const_class.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/const_class.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/const_class.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/const_class.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/const_parameters.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/const_parameters.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/const_parameters.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/const_parameters.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/duplicate_initialization.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/duplicate_initialization.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/duplicate_initialization.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/duplicate_initialization.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_constructor.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_constructor.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_constructor.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_constructor.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_declaring_parameters.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_declaring_parameters.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_declaring_parameters.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/enum_primary_declaring_parameters.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/field_initializers.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/field_initializers.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/field_initializers.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/field_initializers.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/fields.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/fields.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/fields.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/fields.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/generic_primary_constructor.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/generic_primary_constructor.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/generic_primary_constructor.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/generic_primary_constructor.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/inferred_type.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/inferred_type.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/inferred_type.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/inferred_type.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors_pre_feature.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors_pre_feature.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors_pre_feature.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/invalid_primary_constructors_pre_feature.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/issue62935.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/issue62935.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/issue62935.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/issue62935.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/issue63506.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/issue63506.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/issue63506.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/issue63506.dart.strong.transformed.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart
A pkg/front_end/testcases/primary_constructors/issue63507.dart.strong.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart.strong.modular.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart.strong.outline.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart.strong.transformed.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart.textual_outline.expect
A pkg/front_end/testcases/primary_constructors/issue63507.dart.textual_outline_modelled.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.strong.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.strong.modular.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.strong.outline.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.strong.transformed.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.textual_outline.expect
A pkg/front_end/testcases/primary_constructors/issue63507b.dart.textual_outline_modelled.expect
M pkg/front_end/testcases/primary_constructors/mixin_class_field_initializer.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/mixin_class_field_initializer.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/mixin_class_field_initializer.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/mixin_class_field_initializer.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/parameter_assignment.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/parameter_assignment.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/parameter_assignment.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/parameter_assignment.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/parameter_scope.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/parameter_scope.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/parameter_scope.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/parameter_scope.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/parameter_type_inference.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/parameter_type_inference.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/parameter_type_inference.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/parameter_type_inference.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/parameters.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/parameters.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/parameters.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/parameters.dart.strong.transformed.expect
M pkg/front_end/testcases/primary_constructors/wildcards.dart.strong.expect
M pkg/front_end/testcases/primary_constructors/wildcards.dart.strong.modular.expect
M pkg/front_end/testcases/primary_constructors/wildcards.dart.strong.outline.expect
M pkg/front_end/testcases/primary_constructors/wildcards.dart.strong.transformed.expect
A tests/language/primary_constructors/parameter_assignment_error_test.dart
A tests/language/primary_constructors/parameter_assignment_test.dart
Log Message:
-----------
[cfe][PrimaryConstructors] Handle assignment to primary constructor parameters
This CL updates the handling of non-declaring primary constructor parameters. This are not assignable within the constructor initializer list (and with that, the field initializer of non-late instance fields) but *are* assignable in the primary constructor body.
The CL removes the marking of this parameters as final and instead handles the special-casing of their assignability in the body build lookup mechanism.
Views of the CL:
- Base->Patchset 7: Added expectations tests, including previous expectations, added language tests with intended expectations
- Patchset 7->Patchset 8: Fix + expectations update of related tests
- Patchset 8->Patchset 9: Expectations update of unrelated tests
Closes #63507
Change-Id: I6b50c12cbfa90e4b0e5f4242990c1529e8bbff19
Reviewed-on:
https://dart-review.googlesource.com/c/sdk/+/508940
SLSA-Policy-Verified: SLSA Policy Verification Service <
devtools-gerritco...@google.com>
Commit-Queue: Johnni Winther <
johnni...@google.com>
Reviewed-by: Paul Berry <
paul...@google.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/dart-lang/sdk/settings/notifications