diff --git a/operator-index.go b/operator-index.go index 565029c..2888d9b 100644 --- a/operator-index.go +++ b/operator-index.go @@ -113,6 +113,16 @@ func evalIndex(ctx ExprContext, self *term) (v any, err error) { default: err = self.errIncompatibleTypes(leftValue, rightValue) } + } else if IsDict(leftValue) { + var ok bool + var indexValue any + d := leftValue.(*DictType) + if indexValue, err = verifyKey(indexTerm, indexList); err == nil { + if v, ok = (*d)[indexValue]; !ok { + err = indexTerm.Errorf("key %v does not belong to the dictionary", rightValue) + } + } + } return }