When I first started to play around with Dart, I fairly quickly came across a strange but seemingly trivial number type conversion problem. It can be expressed easily by this code:
int a = 60; int b = 5; int c = a/b;
This produces an error at runtime:
type 'double' is not a subtype of type 'int' of 'c'.
But still, might you not expect any language to cope with simple integer arithmetic like this? It's as though division simply cannot be done on integers! The solution is to either use the (a/b).toInt() function to force conversion to integer, or to change the variable types from 'int' to 'num'.