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".
LINPUT 'String variable' can be many other things.
Root / SmileBASIC Bug Reports / [.]
SquareFingersCreated:
So essentially, LINPUT isn't very good at checking what's being passed in.
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.