TypeCheck implements the Expr interface.
( ctx context.Context, semaCtx *SemaContext, desired *types.T, )
| 559 | |
| 560 | // TypeCheck implements the Expr interface. |
| 561 | func (expr *TupleStar) TypeCheck( |
| 562 | ctx context.Context, semaCtx *SemaContext, desired *types.T, |
| 563 | ) (TypedExpr, error) { |
| 564 | subExpr, err := expr.Expr.TypeCheck(ctx, semaCtx, desired) |
| 565 | if err != nil { |
| 566 | return nil, err |
| 567 | } |
| 568 | expr.Expr = subExpr |
| 569 | resolvedType := subExpr.ResolvedType() |
| 570 | |
| 571 | // We need to ensure the expression is a tuple. |
| 572 | if resolvedType.Family() != types.TupleFamily { |
| 573 | return nil, NewTypeIsNotCompositeError(resolvedType) |
| 574 | } |
| 575 | |
| 576 | return subExpr, err |
| 577 | } |
| 578 | |
| 579 | // ResolvedType implements the TypedExpr interface. |
| 580 | func (expr *TupleStar) ResolvedType() *types.T { |
nothing calls this directly
no test coverage detected