[Issue 3259] New: Dynamic Initialization of Structs fails type check for some cases
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Aug 19 04:50:35 PDT 2009
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: nobody at puremagic.com
ReportedBy: hskwk at 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: -------
More information about the Digitalmars-d-bugs
mailing list