> > Shouldn't the types.db specialization for scheme#= be applied > > here? Or can't it figure out the ffixnum types of the arguments? > > Even though it is slightly dangerous, the scrutinizer _could_ assume > > arguments to numerical primitives are fixnums in fixnum mode... > > That's right, the scrutinizer can't figure out the types. The type of n > for the first scheme#= call is *. The call enforces the type to number. > So the second scheme#= is called with (number fixnum). There's no > specialization for that either. > > Wouldn't that kind of assuming lead to hard to debug bugs?
Yes, that danger is indeed not to be ignored. > > If the scrutinizer could infer types for functions then I think that > would be fine. You'd get a warning somewhere. Interprocedural flow-analysis is hard, we shouldn't underestimate this. What happens when we declare a type for a toplevel function? felix _______________________________________________ Chicken-hackers mailing list Chicken-hackers@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-hackers