Allow variance annotations on generic references (#56418)

This commit is contained in:
Josh Goldberg ✨
2023-12-11 14:22:01 -05:00
committed by GitHub
parent 5b10466b63
commit 41259d537b
6 changed files with 250 additions and 1 deletions

View File

@@ -39305,7 +39305,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
const modifiers = getTypeParameterModifiers(typeParameter) & (ModifierFlags.In | ModifierFlags.Out);
if (modifiers) {
const symbol = getSymbolOfDeclaration(node.parent);
if (isTypeAliasDeclaration(node.parent) && !(getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (ObjectFlags.Anonymous | ObjectFlags.Mapped))) {
if (isTypeAliasDeclaration(node.parent) && !(getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (ObjectFlags.Reference | ObjectFlags.Anonymous | ObjectFlags.Mapped))) {
error(node, Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
}
else if (modifiers === ModifierFlags.In || modifiers === ModifierFlags.Out) {