MCPcopy Create free account
hub / github.com/cel-expr/cel-go / extractIterVars

Function extractIterVars

ext/comprehensions.go:401–420  ·  view source on GitHub ↗
(mef cel.MacroExprFactory, arg0, arg1 ast.Expr)

Source from the content-addressed store, hash-verified

399}
400
401func extractIterVars(mef cel.MacroExprFactory, arg0, arg1 ast.Expr) (string, string, *cel.Error) {
402 iterVar1, err := extractIterVar(mef, arg0)
403 if err != nil {
404 return "", "", err
405 }
406 iterVar2, err := extractIterVar(mef, arg1)
407 if err != nil {
408 return "", "", err
409 }
410 if iterVar1 == iterVar2 {
411 return "", "", mef.NewError(arg1.ID(), fmt.Sprintf("duplicate variable name: %s", iterVar1))
412 }
413 if iterVar1 == mef.AccuIdentName() || iterVar1 == parser.AccumulatorName {
414 return "", "", mef.NewError(arg0.ID(), "iteration variable overwrites accumulator variable")
415 }
416 if iterVar2 == mef.AccuIdentName() || iterVar2 == parser.AccumulatorName {
417 return "", "", mef.NewError(arg1.ID(), "iteration variable overwrites accumulator variable")
418 }
419 return iterVar1, iterVar2, nil
420}
421
422func extractIterVar(mef cel.MacroExprFactory, target ast.Expr) (string, *cel.Error) {
423 iterVar, found := extractIdent(target)

Callers 6

quantifierAllFunction · 0.85
quantifierExistsFunction · 0.85
quantifierExistsOneFunction · 0.85
transformListFunction · 0.85
transformMapFunction · 0.85
transformMapEntryFunction · 0.85

Calls 4

extractIterVarFunction · 0.85
NewErrorMethod · 0.65
IDMethod · 0.65
AccuIdentNameMethod · 0.65

Tested by

no test coverage detected