Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 3272e5c

Browse files
author
Dart CI
committed
Version 2.15.0-10.0.dev
Merge commit '29419292d5605a1fad8536c1b01bd4d0404db745' into 'dev'
2 parents 7a51812 + 2941929 commit 3272e5c

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

pkg/analyzer_plugin/doc/tutorial/introduction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ location at which an identifier is defined.
134134

135135
Navigation information can be requested both by an `analysis.getNavigation`
136136
request and by a subscription. If the server has subscribed for navigation
137-
information in some set of files, the the plugin should send the information in
137+
information in some set of files, then the plugin should send the information in
138138
an `analysis.navigation` notification whenever the information needs to be
139139
updated.
140140

runtime/vm/object.cc

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9351,9 +9351,9 @@ FunctionPtr Function::ImplicitClosureFunction() const {
93519351
closure_signature.FinalizeNameArray();
93529352
closure_function.InheritKernelOffsetFrom(*this);
93539353

9354-
// Change covariant parameter types to either Object? for an opted-in implicit
9355-
// closure or to Object* for a legacy implicit closure.
93569354
if (!is_static() && !IsConstructor()) {
9355+
// Change covariant parameter types to either Object? for an opted-in
9356+
// implicit closure or to Object* for a legacy implicit closure.
93579357
BitVector is_covariant(zone, NumParameters());
93589358
BitVector is_generic_covariant_impl(zone, NumParameters());
93599359
kernel::ReadParameterCovariance(*this, &is_covariant,
@@ -9372,6 +9372,22 @@ FunctionPtr Function::ImplicitClosureFunction() const {
93729372
closure_signature.SetParameterTypeAt(i, object_type);
93739373
}
93749374
}
9375+
} else if (IsConstructor() && closure_signature.IsGeneric()) {
9376+
// Instantiate types of parameters as they may reference
9377+
// class type parameters.
9378+
const auto& instantiator_type_args = TypeArguments::Handle(
9379+
zone, AbstractType::Handle(zone, closure_signature.result_type())
9380+
.arguments());
9381+
auto& param_type = AbstractType::Handle(zone);
9382+
for (intptr_t i = kClosure; i < num_params; ++i) {
9383+
param_type = closure_signature.ParameterTypeAt(i);
9384+
if (!param_type.IsInstantiated()) {
9385+
param_type = param_type.InstantiateFrom(instantiator_type_args,
9386+
Object::null_type_arguments(),
9387+
kAllFree, Heap::kOld);
9388+
closure_signature.SetParameterTypeAt(i, param_type);
9389+
}
9390+
}
93759391
}
93769392
ASSERT(!closure_signature.IsFinalized());
93779393
closure_signature ^= ClassFinalizer::FinalizeType(closure_signature);

tools/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ CHANNEL dev
2727
MAJOR 2
2828
MINOR 15
2929
PATCH 0
30-
PRERELEASE 9
30+
PRERELEASE 10
3131
PRERELEASE_PATCH 0

0 commit comments

Comments
 (0)