diff --git a/ast/expr.go b/ast/expr.go index 3af59df3..71314d86 100644 --- a/ast/expr.go +++ b/ast/expr.go @@ -5,15 +5,12 @@ package ast import ( "encoding/json" "fmt" - "regexp" "strings" "github.com/hashicorp/hcl/v2" "github.com/pulumi/esc/syntax" ) -var fnOpenRegex = regexp.MustCompile(`^fn::open::[a-zA-Z-]+$`) - // Expr represents a Pulumi YAML expression. Expressions may be literals, interpolated strings, symbols, or builtin // functions. type Expr interface { @@ -534,7 +531,7 @@ func tryParseFunction(node *syntax.ObjectNode) (Expr, syntax.Diagnostics, bool) case "fn::toString": parse = parseToString default: - if match, _ := regexp.MatchString(fnOpenRegex.String(), kvp.Key.Value()); match { + if strings.HasPrefix(kvp.Key.Value(), "fn::open::") { // transform the node into fn::open format providerName := strings.TrimPrefix(kvp.Key.Value(), "fn::") // case 1: inputs are provided