in reply to tied, or modified?

The parsing is probably handled by some generic routine that was told tied's arg must be an lvalue. You didn't provide an lvalue. The generic routine tries to explain what an lvalue is (something modifiable) and that one wasn't provided ("Can't modify X"), but the message does not fit this particular case.