From 1cce9b8052a1988449ce01db34fe05e11d88cf3e Mon Sep 17 00:00:00 2001 From: Nicholas Shahan Date: Mon, 11 Sep 2023 21:00:47 +0000 Subject: [PATCH] [ddc] Avoid adding raw type parameters to type table There is no need to add a single type parameter to the type table because it is already represented as a local variable in the scope where it appears. Change-Id: I4553d54304a2e3b82e856b8511fdce81cda0653e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/324901 Reviewed-by: Mark Zhou Commit-Queue: Nicholas Shahan --- pkg/dev_compiler/lib/src/kernel/compiler.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart index 8f62edbb935..f87a613e96b 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart @@ -3366,7 +3366,14 @@ class ProgramCompiler extends ComputeOnceConstantVisitor normalizedType, _currentTypeEnvironment); var typeRep = evalInEnvironment(result.requiredEnvironment, result.recipe); - if (_cacheTypes) typeRep = _typeTable.nameType(normalizedType, typeRep); + if (_cacheTypes && + // Avoid adding a the use of a single type parameter to the type + // table. These can be referenced directly because the are already + // represented as a local variable in the scope. + !(normalizedType is TypeParameterType && + normalizedType.isPotentiallyNonNullable)) { + typeRep = _typeTable.nameType(normalizedType, typeRep); + } return typeRep; } on UnsupportedError catch (e) { _typeCompilationError(normalizedType, e.message ?? 'Unknown Error');