From 53defca14df8e10b3767fffa263d4c44f90fc019 Mon Sep 17 00:00:00 2001 From: Alexander Markov Date: Thu, 7 Aug 2025 06:44:59 -0700 Subject: [PATCH] [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 Reviewed-by: Tess Strickland --- pkg/dart2bytecode/lib/object_table.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/dart2bytecode/lib/object_table.dart b/pkg/dart2bytecode/lib/object_table.dart index 06ff4b83d11..9e803e8e3fb 100644 --- a/pkg/dart2bytecode/lib/object_table.dart +++ b/pkg/dart2bytecode/lib/object_table.dart @@ -2173,7 +2173,8 @@ class _NodeVisitor extends VisitorDefault @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 final returnType = objectTable.getHandle(node.returnType) as _TypeHandle; final result = objectTable.getOrAddObject(new _FunctionTypeHandle( - objectTable.numEnclosingFunctionTypeParameters + - numEnclosingTypeParameters, + numEnclosingTypeParameters, typeParameters, node.requiredParameterCount, positionalParams,