This is an unexpected error; Seems it's the result of not down-casting a variable-type. Is this a bug? Or just need a better error message? Version: DMD32 D Compiler v2.061 struct S { void test(uint v) @property {} void test2(ulong v) @property {} } ulong x; S s; s.test2 = x; s.test = x; //s.test is not a property