MCPcopy Create free account
hub / github.com/microsoft/typescript-go / checkTypeParameters

Method checkTypeParameters

internal/checker/checker.go:6979–6996  ·  view source on GitHub ↗
(typeParameterDeclarations []*ast.Node)

Source from the content-addressed store, hash-verified

6977}
6978
6979func (c *Checker) checkTypeParameters(typeParameterDeclarations []*ast.Node) {
6980 seenDefault := false
6981 for i, node := range typeParameterDeclarations {
6982 c.checkTypeParameter(node)
6983 defaultTypeNode := node.AsTypeParameterDeclaration().DefaultType
6984 if defaultTypeNode != nil {
6985 seenDefault = true
6986 c.checkTypeParametersNotReferenced(defaultTypeNode, typeParameterDeclarations, i)
6987 } else if seenDefault {
6988 c.error(node, diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters)
6989 }
6990 for j := range i {
6991 if typeParameterDeclarations[j].Symbol() == node.Symbol() {
6992 c.error(node.Name(), diagnostics.Duplicate_identifier_0, scanner.DeclarationNameToString(node.Name()))
6993 }
6994 }
6995 }
6996}
6997
6998// Check that type parameter defaults only reference previously declared type parameters */
6999func (c *Checker) checkTypeParametersNotReferenced(root *ast.Node, typeParameters []*ast.Node, index int) {

Calls 7

checkTypeParameterMethod · 0.95
errorMethod · 0.95
DeclarationNameToStringFunction · 0.92
SymbolMethod · 0.65
NameMethod · 0.65

Tested by

no test coverage detected