TUPLE: declared-fixnum { x fixnum } ;
-! XXX: As of .97, we do a bounds check and throw an error on overflow, so we can't
-! use fixnum+ here. If this is too big a regression, we can revert it.
-! [ t ] [
- ! [ { declared-fixnum } declare [ 1 + ] change-x ]
- ! { + fixnum+ >fixnum } inlined?
-! ] unit-test
+[ t ] [
+ [ { declared-fixnum } declare [ 1 + ] change-x ]
+ { + fixnum+ >fixnum } inlined?
+] unit-test
[ t ] [
[ { declared-fixnum } declare x>> drop ]
! is a modular arithmetic word, then the input can be converted into
! a form that is cheaper to compute.
{
- >fixnum bignum>fixnum integer>fixnum
+ >fixnum
+ bignum>fixnum bignum>fixnum-strict
+ integer>fixnum integer>fixnum-strict
float>fixnum
set-alien-unsigned-1 set-alien-signed-1
set-alien-unsigned-2 set-alien-signed-2
USING: accessors effects eval kernel layouts math namespaces
quotations tools.test typed words words.symbol combinators.short-circuit
compiler.tree.debugger prettyprint definitions compiler.units sequences
-classes.intersection strings classes.union ;
+classes.intersection strings classes.union kernel.private ;
IN: typed.tests
TYPED: f+ ( a: float b: float -- c: float )
TYPED: fix+ ( a: fixnum b: fixnum -- c: fixnum )
+ ;
-! XXX: As of .97, we don't require that the output is a fixnum.
-! most-positive-fixnum neg 1 - 1quotation
-! [ most-positive-fixnum 1 fix+ ] unit-test
-
-! XXX: Check that we throw an error. This used to underflow to the least-positive-fixnum.
-[ most-positive-fixnum 1 fix+ ] [ { "kernel-error" 7 } head? ] must-fail-with
+most-positive-fixnum neg 1 - 1quotation
+[ most-positive-fixnum 1 fix+ ] unit-test
TUPLE: tweedle-dee ; final
TUPLE: tweedle-dum ; final