原文:对过去状况进行推断,情态动词+have done; 对目前的事件进行推断:
He must/will/would/should/could/may/might/cant have left yesterday.
那是由于will have done即可以表示说话人对过去发生的事件进行推断,也可以表示以后某个时间之前发生的动作(此时为以后完成时)。以后完成时也可以觉得是对以后事件的推断,只是推断的是在以后某个时间之前发生,而不是在那个以后时间发生。比如:
When you come back at 5 pm, I will have finished repairing your watch. 这个句子就能理解为说话人预测在5点以前表能修好。
因为以后完成时的使用方法在时态部分已经论述,所以一般语法书在讨论情态动词的推断性使用方法时,极少再涉及对以后的推断,而主要涉及对过去和目前的推断。
以后完成时表示一个事件在以后某个时间之前已经发生并结束了,一般有一个时间状语提示这个以后时间。你就是依据这个以后时间状语来辨认以后完成时的。
当will have done表示对过去的推断时,句子肯定不会出现以后时间状语。相反或许会有过去的时间状语,或者语境提示过去。
你所说的原文是在讨论情态动词的推断性使用方法,与对过去状况推断时的动词形式,你却和以后完成时要往一块扯,问题出在你一个人身上。