Though everyone agrees that the var is unused but JLS says that-
At run time, the result of the assignment expression is the value of the variable after the assignment has occurred. The result of an assignment expression is not itself a variable.
So the value of s is read and compared to null but someone argues that it is not read and reader.readLine() is stored somewhere in a register and accessed at the time when we are comparing it to null.
There is no documentation regarding strong value in a register, etc. So it is upon you to consider this as a FP or a good positive.