if we have :
dynamic x = "hello"; // Static type is dynamic, runtime type is string
var y = "hello"; // Static type is string, runtime type is string
Fine.
what about
dynamic x = *veryComplicatedRunTimeStructure_UnknownatCompileTime.*;
var y=x;
it DOES compile !
I have a problem with the second line here.
it is known that var is evaluated in compile time.

But in compile time it doesn’t have a clue about the type….
so…what is the compile type of the y?
When the type of the assignment expression is
dynamic, so is the implicitly declared variable’s type. There’s nothing special aboutdynamichere – your code is equivalent to:From section 8.5.1 of the C# 4 spec:
So here, the expression is
dynamic, and so is the variable…