// An `inline for 0..M` bound accepts an integral float constant — `M :: 3.0`
// unrolls the same three iterations as `M :: 3`. The inline-for bound folder
// (`evalComptimeInt`) delegates to the shared const-int evaluator, so the
// integral-float rule (issue 0083 / F0.4 attempt 8, Agra ruling) applies here
// too.
#import "modules/std.sx";

M :: 3.0;

main :: () {
    s := 0;
    inline for 0..M (i) { s += i; }
    print("sum 0..M = {}\n", s);          // 0 + 1 + 2 = 3
}
