subject + needn't have + past participleUse this when the action really happened, but later you see it was unnecessary.
Needn't have done = the action happened, but it was unnecessary. Didn't need to do = there was no need, so the action did not happen.
subject + needn't have + past participleUse this when the action really happened, but later you see it was unnecessary.
subject + didn't need to + base verbUse this when there was no need, so the action did not happen.
Anna needn't have brought snacks.
The snacks were brought. Use needn't have + past participle for an unnecessary action that happened.
Someone completed the action, then you say it was unnecessary: Maria brought cash, but cards were accepted everywhere.
The action became unnecessary before it happened, so nobody did it: We didn't need to take a taxi because the hotel sent a driver.
A later detail shows the action happened: Tom needn't have printed the file — Lisa already had it on her laptop.
They differ in one key fact: did the action happen or not? Needn't have done = yes. Didn't need to do = no.
Needn't have done looks back at a finished past action and says it was unnecessary.
UNNECESSARY_BUT_DONEw5Choose needn't have done when the person really did the action, and later you say it was unnecessary. The result is complete, but the necessity was zero.
NOT_NECESSARY_SO_NOT_DONEw5Choose didn't need to do when there was no necessity, so the action was not done. The sentence focuses on lack of need before the action.
FORM_NEEDNT_HAVE_DONEw4Use needn't have followed by a past participle such as gone, called, or bought. Do not use the base verb after have in this pattern.
FORM_DIDNT_NEED_TO_DOw4Use didn't need to followed by the base verb: call, buy, wait. Do not use a past form or a participle after to.
READ_PAST_RESULT_CLUESw4Look for clues that show the action happened, such as but he did, anyway, in the end, or a visible result. Look for clues that show it did not happen, such as so we didn't, because someone else did it, or the plan changed.