[cfe] Ensure inferred parameter types on intermediate mixin application constructors
Closes #46159 Change-Id: Ice569565db68832c47cffb745faaca39defd9be2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206641 Reviewed-by: Dmitry Stefantsov <dmitryas@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
eb1a2166cd
commit
da2f5bb22c
@@ -716,7 +716,9 @@ class KernelTarget extends TargetImplementation {
|
||||
Constructor? referenceFrom) {
|
||||
VariableDeclaration copyFormal(VariableDeclaration formal) {
|
||||
VariableDeclaration copy = new VariableDeclaration(formal.name,
|
||||
isFinal: formal.isFinal, isConst: formal.isConst);
|
||||
isFinal: formal.isFinal,
|
||||
isConst: formal.isConst,
|
||||
type: const UnknownType());
|
||||
if (formal.type is! UnknownType) {
|
||||
copy.type = substitute(formal.type, substitutionMap);
|
||||
} else {
|
||||
@@ -1424,7 +1426,7 @@ class DelayedParameterType {
|
||||
|
||||
void updateType() {
|
||||
// ignore: unnecessary_null_comparison
|
||||
assert(source.type != null, "No type computed for $source.");
|
||||
assert(source.type is! UnknownType, "No type computed for $source.");
|
||||
target.type = substitute(source.type, substitutionMap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ library from "org-dartlang-test:///main.dart" as main {
|
||||
;
|
||||
}
|
||||
abstract class _A&B&C&D extends main::_A&B&C implements main::D /*isAnonymousMixin,isEliminatedMixin*/ {
|
||||
synthetic constructor named(dynamic _field) → main::_A&B&C&D*
|
||||
synthetic constructor named(lib::E* _field) → main::_A&B&C&D*
|
||||
: super main::_A&B&C::named(_field)
|
||||
;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user