diff --git a/src/Psalm/Internal/Analyzer/Statements/Expression/CallAnalyzer.php b/src/Psalm/Internal/Analyzer/Statements/Expression/CallAnalyzer.php index c1801b8a206..b001d9d4a3c 100644 --- a/src/Psalm/Internal/Analyzer/Statements/Expression/CallAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/Statements/Expression/CallAnalyzer.php @@ -2715,9 +2715,7 @@ private static function coerceValueAfterGatekeeperArgument( && $input_atomic_type->value === $param_atomic_type->value ) { foreach ($input_atomic_type->type_params as $i => $type_param) { - if (($type_param->isEmpty() || $type_param->had_template) - && isset($param_atomic_type->type_params[$i]) - ) { + if ($type_param->isEmpty() && isset($param_atomic_type->type_params[$i])) { $input_type_changed = true; $input_atomic_type->type_params[$i] = clone $param_atomic_type->type_params[$i]; diff --git a/src/Psalm/Type/Union.php b/src/Psalm/Type/Union.php index 7af6a240f3a..e2e0fe643d5 100644 --- a/src/Psalm/Type/Union.php +++ b/src/Psalm/Type/Union.php @@ -1121,8 +1121,6 @@ public function replaceTemplateTypesWithStandins( $this->types[$class_string->getKey()] = $class_string; - $this->had_template = true; - if ($input_type) { $valid_input_atomic_types = [];