[vm,dyn_modules] Fix type parameter indices in nested function types in bytecode

TEST=ci (co19/LanguageFeatures/Generic-functions-as-type-args/typedef1_A01_t04)

Change-Id: Ia3146e91b4da4adaf14fe34d9dcf5d4129daba9d
Cq-Include-Trybots: luci.dart.try:vm-aot-dyn-linux-debug-x64-try,vm-aot-dyn-linux-product-x64-try,vm-dyn-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/444180
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
This commit is contained in:
Alexander Markov
2025-08-07 06:44:59 -07:00
committed by Commit Queue
parent 8ef843ef4f
commit 53defca14d
+3 -3
View File
@@ -2173,7 +2173,8 @@ class _NodeVisitor extends VisitorDefault<ObjectHandle?>
@override
ObjectHandle? visitFunctionType(FunctionType node) {
final int numEnclosingTypeParameters = _typeParameters.length;
final int numEnclosingTypeParameters =
objectTable.numEnclosingFunctionTypeParameters + _typeParameters.length;
for (int i = 0; i < node.typeParameters.length; ++i) {
_typeParameters[node.typeParameters[i]] = objectTable.getOrAddObject(
new _TypeParameterHandle(
@@ -2198,8 +2199,7 @@ class _NodeVisitor extends VisitorDefault<ObjectHandle?>
final returnType = objectTable.getHandle(node.returnType) as _TypeHandle;
final result = objectTable.getOrAddObject(new _FunctionTypeHandle(
objectTable.numEnclosingFunctionTypeParameters +
numEnclosingTypeParameters,
numEnclosingTypeParameters,
typeParameters,
node.requiredParameterCount,
positionalParams,