Category talk:Wren-check: Difference between revisions

Content deleted Content added
PureFox (talk | contribs)
→‎Source code: Doh, bug fixes already!
PureFox (talk | contribs)
→‎Source code: Still not right :(
Line 15: Line 15:
if (name == "" || name == null) name = "Value"
if (name == "" || name == null) name = "Value"
Fiber.abort("'%(name)' must be %(desc), have '%(value)'.")
Fiber.abort("'%(name)' must be %(desc), have '%(value)'.")
}

static isSafeInt_(value) {
return (value is Num) && value.isInteger && value <= Num.maxSafeInteger.abs
}
}


Line 102: Line 106:
}
}


static posInt(name, value) { int(name, value, 1) }
static posInt(name, value) { int(name, value, 1) }
static nonNegInt(name, value) { int(name, value, 0) }
static nonNegInt(name, value) { int(name, value, 0) }

static safeInt(name, value) { int(name, value, "a 'safe' integer") }
static posSafeInt(name, value) { int(name, value, "a positive 'safe' integer") }
static safeInt(name, value) {
static nonNegSafeInt(name, value) { int(name, value, "a non-negative 'safe' integer") }
if (!isSafeInt_(value)) abort_(name, value, "a 'safe' integer")
}

static posSafeInt(name, value) {
if (!(isSafeInt_(value) && value > 0)) {
abort_(name, value, "a positive 'safe' integer")
}
}

static nonNegSafeInt(name, value) {
if (!(isSafeInt_(value) && value >= 0)) {
abort_(name, value, "a non-negative 'safe' integer")
}
}


static nonZeroSafeInt(name, value) {
static nonZeroSafeInt(name, value) {
if (!(safeInt(value) && value != 0)) abort_(name, value, "a non-zero 'safe' integer")
if (!(isSafeInt_(value) && value != 0)) {
abort_(name, value, "a non-zero 'safe' integer")
}
}
}