"Will be/would have been home tomorrow"

Which is correct?

He promised that he will be home tomorrow.

He promised that he would have been home tomorrow.


Solution 1:

Both sound wrong to me. I think you mean to use future in the past:

He promised he would be home tomorrow.

He promised he would have been home tomorrow, while not grammatically incorrect implies that the whole situation is hypothetical and I think it is unlikely that this 'unreal' meaning is what you want to express.


I cannot explain why I dislike promised ... will and COCA usage indicates that some people use it but promised ... would is far more common and should be preferred.

Solution 2:

If you're distinguishing future from future perfect, that's really the difference between "will be" and "will have been". "would" is a different mood, and implies here a counterfactual: he promised that he would have been home tomorrow but he didn't come.

The future tense is correct. Tomorrow is the point where he will be home. It will not have been a completed action in the past at that point.