MCPcopy
hub / github.com/hashicorp/hcl / ExprList

Function ExprList

expr_list.go:17–40  ·  view source on GitHub ↗

ExprList tests if the given expression is a static list construct and, if so, extracts the expressions that represent the list elements. If the given expression is not a static list, error diagnostics are returned. A particular Expression implementation can support this function by offering a metho

(expr Expression)

Source from the content-addressed store, hash-verified

15// UnwrapExpression to delegate handling of this function to a wrapped
16// Expression object.
17func ExprList(expr Expression) ([]Expression, Diagnostics) {
18 type exprList interface {
19 ExprList() []Expression
20 }
21
22 physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool {
23 _, supported := expr.(exprList)
24 return supported
25 })
26
27 if exL, supported := physExpr.(exprList); supported {
28 if list := exL.ExprList(); list != nil {
29 return list, nil
30 }
31 }
32 return nil, Diagnostics{
33 &Diagnostic{
34 Severity: DiagError,
35 Summary: "Invalid expression",
36 Detail: "A static list expression is required.",
37 Subject: expr.StartRange().Ptr(),
38 },
39 }
40}

Callers

nothing calls this directly

Calls 4

UnwrapExpressionUntilFunction · 0.85
PtrMethod · 0.80
ExprListMethod · 0.65
StartRangeMethod · 0.65

Tested by

no test coverage detected