…that this is happening when *warn-on-reflection* is true
…for arbitrary precision.
Bigints auto-reduce in all cases Restore +, *, -, inc, dec as auto-promoting ops, will never return primitive integers, will auto-promote even when given primitives. Add +', *', -', inc', dec', that do exactly what their counterparts do except when given integers of long or smaller, in which case they will not auto-promote but instead throw on overflow, and can return primitives. Return primitive doubles on all ops involving primitive doubles Box on long ops only after checking for overflow
…Use == for inter-type numeric equivalence.
…umeric literals to be primitive initializers. Canonicalize boxing of integers, if it fits in int, is Integer, else Long, thus primitive coercions can't be used to get particular boxed types, use Long/valueOf etc. Ask for BigIntegers if you want arbitrary precision, new literal number format - append 'N' for BigInteger. BigIntegers do not reduce automatically, are contagious. New particular names for unchecked ops - unchecked-xxx-int or unchecked-xxx-long. You should need far fewer hints for primitive perf, and avoid int casts and any casting of numeric literals, see: http://gist.github.com/440102
Signed-off-by: Rich Hickey <email@example.com>
…ics, limit primitives to long and double
…375. Signed-off-by: Rich Hickey <firstname.lastname@example.org>
… method argument names Signed-off-by: Stuart Halloway <email@example.com>
…mes in defrecord Signed-off-by: Stuart Halloway <firstname.lastname@example.org>