(1+ (&min/0 idx)) (target-max-size-t/scm)) (define! result &u64 0 &u64-max)) (define-type-inferrer/param (word-ref/immediate param obj result) (match param ((annotation . idx) (restrict! obj (annotation->type annotation) (1+ idx) +inf.0) (define! result &u64 0 &u64-max)))) (define-type-inferrer/param (word-set! param obj idx word) (restrict! obj (annotation->mutable-type param) (1+ (&min/0 idx)) +inf.0)) (define-type-inferrer/param (word-set!/immediate param obj word) (match param ((annotation . idx) (restrict! obj (annotation->mutable-type annotation) (1+ idx) +inf.0)))) (define-type-inferrer/param (pointer-ref/immediate param obj result) (define! result &other-heap-object -inf.0 +inf.0)) (define-type-inferrer/param (tail-pointer-ref/immediate param obj result) (define! result &other-heap-object -inf.0 +inf.0)) (define-type-inferrer/param (assume-u64 param val result) (match param ((lo . hi) (define! result &u64 (max lo (&min val)) (min hi (&max val)))))) (define-type-inferrer/param (assume-s64 param val result) (match param ((lo . hi) (define! result &s64 (max lo (&min val)) (min hi (&max val))))))