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

Method update

repl/evaluator.go:219–273  ·  view source on GitHub ↗
(env *cel.Env)

Source from the content-addressed store, hash-verified

217}
218
219func (l *letFunction) update(env *cel.Env) error {
220 var err error
221
222 err = l.updateImpl(env)
223 if err != nil {
224 return err
225 }
226
227 paramTypes := make([]*types.Type, len(l.params))
228 for i, p := range l.params {
229 ty, err := p.typeHint.AsCELType(env.CELTypeProvider())
230 if err != nil {
231 return err
232 }
233 paramTypes[i] = ty
234 }
235
236 resultTy, err := l.resultType.AsCELType(env.CELTypeProvider())
237 if err != nil {
238 return err
239 }
240
241 var opt cel.EnvOption
242 if l.receiver != nil {
243 ty, err := l.receiver.AsCELType(env.CELTypeProvider())
244 if err != nil {
245 return err
246 }
247 paramTypes = append([]*types.Type{ty}, paramTypes...)
248 opt = cel.Function(
249 l.identifier,
250 cel.MemberOverload(
251 l.identifier,
252 paramTypes,
253 resultTy,
254 l.generateFunctionBinding()...,
255 ))
256 } else {
257 opt = cel.Function(
258 l.identifier,
259 cel.Overload(
260 l.identifier,
261 paramTypes,
262 resultTy,
263 l.generateFunctionBinding()...,
264 ))
265 }
266
267 l.env, err = env.Extend(opt)
268 if err != nil {
269 return err
270 }
271
272 return nil
273}
274
275func (l letVariable) String() string {
276 return fmt.Sprintf("%s = %s", l.identifier, l.src)

Callers 1

updateContextPlansFunction · 0.80

Calls 8

updateImplMethod · 0.95
FunctionFunction · 0.92
MemberOverloadFunction · 0.92
OverloadFunction · 0.92
AsCELTypeMethod · 0.80
CELTypeProviderMethod · 0.80
ExtendMethod · 0.45

Tested by

no test coverage detected