What time are we talking about in “She’ll have bought a new mobile/cellphone yesterday”?
Days of Future Passed
In English we normally call this construction the future perfect. It’s a construction that represents, if you would, the very opposite of the more familiar and rather more frequently used future-in-the-past time shown in the second clause here:
- Yesterday they told her that it would rain today. [=future in past]
The opposite of a time representing the future in the past is necessarily one representing the past in the future, like this:
- By the time she gets here later this afternoon, it will have rained already. [=past in future]
The first sentence takes place in the past (they said) but it references a time frame that was still in the future of that past-time reference frame. It had not yet happened then, and we don’t know whether it has happened now or even whether it for certain shall.
The second sentence’s first clause is grammatically in the present tense (she gets) but it nonetheless represents a future time (later this afternoon). Its second clause’s verb is a perfect infinitive have rained used with the modal verb will, here in its epistemic to indicate a future time.
So the perfect aspect makes it a completed one, and the will marker moves that completion into the future reference frame.
Inferential will
Sometimes will be means “probably is”, and will have been means “probably was”.
The sentence She will have bought a new phone yesterday means that she “surely must” have done so yesterday. This is not the normal past-in-the-future the way the future perfect normally works out to meaning so much as it is a probable state of some past event; a probability statement, if you would.
Yesterday specifies when the action was completed, and here the modal verb will means mere likelihood not actual futurity.
Consider this simple example where will means probability not futurity:
Jack: There’s someone at the door!
Jill: That will be Billy.
That means it must be, or “has to” be Billy. It’s about a probable present time, not about a future time — despite that will.
When you want to to express that same thing in the past, you use a perfect construction; you don’t just change will to would because that just weakens the probability.
Jack: There’s someone at the door!
Jill: Would that be Billy?
By backshifting the will into would, you have made it less probable. You haven’t changed it to a past time. For that, you need a perfect construction to show that it has already been completed:
Jack: Somebody called yesterday but didn’t leave his name.
Jill: That will have been Billy.
That means it must have been Billy who called yesterday. It’s still the future perfect construction, but this time it doesn’t refer to something that hasn’t happened yet. It refers to something that has very probably already happened — yesterday.
In Related Languages
English’s cousin languages and its slightly more distant European relatives also have the same concept of a past in the future; they just call these different things, but most form them in essentially the same way.
- The Latin future perfect uses a simple tense¹ in the active voice, but in the passive voice uses a compound tense.² Examples are videro (I’ll have seen) versus visus ero (I’ll be [or have been] seen).
- =a single-word, synthetic tense via inflection of the root verb’s stem.
- =a multi-word, analytic tense via an inflected auxiliary plus the passivized verb’s past participle.
- The French call these future perfect constructions the future anterior, or in French futur antérieur. Examples include j’aurai dit (I’ll have said) and j’serai parti (I’ll have left).
- Italian similarly calls it the future anterior (futuro anteriore).
- Spanish calls it either the future perfect (futuro perfecto) or the compound/composed future (futuro compuesto), the latter making clear that it is a compound verb construction not a simple, one-word tense. Examples include habré dicho (I’ll have said) and habrá llovido (It will have rained).
- In Portuguese it is usually the future perfect (futuro perfeito).
- In German it is (often called) the second future (Futur II).
- In Scandinavian languages it is the “exact” future (futurum exaktum).
Using the simple future to mean the probable present (or non-past) and using the future perfect to mean the probable past is not a use of the future which is peculiar to English alone; Spanish and Portuguese can also use their own futures, including the future perfect, to indicate probability.
For example, if you in Spanish/Portuguese say Será un/um amigo, even though será is the literal future tense meaning “will be”, it can instead mean that it’s “very likely/probably” a friend, or it “must” (epistemic sense) or “has to” be a friend.
This shows how even languages with actual future tense morphological inflections (unlike English) can still use these future forms with a non-future sense: a probable present situation.
Once you move further away from English than its Germanic and Romance cousins, you begin to see the same sentiment of inferred probability expressed differently. The Balkan languages have such things as the “renarrative mood” and the “inferential mood”.
So English modal uses of (inferred) probability like...
- That will be John. (probable/inferred present)
- That must be John. (probable/inferred present)
- That will have been John. (probable/inferred past)
- That must have been John. (probable/inferred past)
...would in some of those languages be translated using special inferential moods that their verbs can take on.
Summary
All these languages, including English, are more flexible than a simple one-to-one mapping between verb tenses and times referenced would allow for.
This is a rather peculiar construction, and I don't think the other answers have quite got to the point. Here is an example, without the future perfect:
Kid: Dad, when is granny coming?
Dad: She'll be on the train by now.
It means something like "It is very likely that she is on the train by now", or "It is to be expected that she is on the train by now." It is a perfectly sound construction, but I would not expect to see it in formal written English.
So your sentence just means "It is very likely that she bought a new cellphone yesterday", or "I assume that she bought a new cellphone yesterday."