So essentially, LINPUT isn't very good at checking what's being passed in.
LINPUT 'String variable' can be many other things.
Root / SmileBASIC Bug Reports / [.]
SquareFingersCreated:
LINPUT POW(2,2) generates no error. Generally, expressions that cannot be 'constant-folded' seem to be allowed as the 'string variable' parameter to LINPUT - even ones that cause an error, like SQR(-1), can be used, and LINPUT eats the error. Expressions that can be 'constant-folded' are allowed too, if there is 'guiding text string' - e.g. LINPUT "";0 causes no error, and neither does LINPUT "";"BUG".
In the case of LINPUT, the phrase 'what's being passed in' is ambiguous. It is not good at giving an error when the type of the parameter is unsuitable/unusable for the operation of the command.