http://d.puremagic.com/issues/show_bug.cgi?id=3259
Summary: Dynamic Initialization of Structs fails type check for some cases Product: D Version: 2.031 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid Severity: major Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: hs...@inter7.jp struct S {/* containing anything except reference for class or array */} struct T {/* containing anything */} class C {} void main() { // invalid initialization is accepted S a = T(); S b = 1; // valid error in compile time : dynamic initilizer of struct S c = 1.0; // cannot cast double to S S d = new T; S e = new C; S f = new int[1]; // valid error in compile time : assignment a = T(); b = 1; } It seems this problem results from implicit cast in the dynamic initialization of structs. It is highly severe when both S and T contain only integer type. In C, any named enum is treated as int. This problem resembles that. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------