The reason not to do it is that sometimes there is a misunderstanding around what the functions do. Let’s say I don’t know what the indexing operation does: tensor[scalar]. If I pass in the float-scalar (0.1), and it gets converted to an int-scalar (that is now 0), this operation will work and return something. However, maybe I assumed the [] operation does addition (ie, tensor[scalar] = tensor + scalar. Then my code would run and I would have a hard time tracking down what’s wrong.
Usually there’s a good reason behind some functions only taking LongTensors and some functions only taking floating-point types. If you see something that you think shouldn’t have these restrictions, please let us know with a forum post or an issue.