Which is the difference between:
"I'm having an old friend for dinner"
"I'm having an old friend at dinner"
"Having anyone for dinner" means you're meeting someone, right?
Using "for" does not necessarily mean you're going to eat.
The sentence is said by the character Hannibal Lecter, a cannibale, at "The Silence of the lambs"'s final scene: https://www.youtube.com/watch?v=sbJ89LFheTs
Said by Dr. Lecter, the sentence is a ambiguous:
- Dr. Lecter is going to eat his "old friend".
- Dr. Lecter is meeting and old friend for dinner, not eating him.
But when it's said by a non-cannibal, are correct both interpretations of "having something for dinner"?:
- You're eating something for dinner (e.g. I'm having chicken with fava beans for dinner)
- You're meeting someone for dinner. (e.g. I'm having friends for dinner, we'll eat pizza with a nice Chianti)