code: func HasTimeExpr(expr Expr) bool {
  	switch n := expr.(type) {
  	case *BinaryExpr:
  		if n.Op == AND || n.Op == OR {
  			return HasTimeExpr(n.LHS) || HasTimeExpr(n.RHS)
  		}
  		if ref, ok := n.LHS.(*VarRef); ok && strings.ToLower(ref.Val) == "time" {
  			return true
  		}
  		return false
  	case *ParenExpr:
  		// walk down the tree
  		return HasTimeExpr(n.Expr)
  	default:
  		return false
  	}
  }
docs: // HasTimeExpr returns true if the expression has a time term.