http://d.puremagic.com/issues/show_bug.cgi?id=8220
--- Comment #4 from Kenji Hara <k.hara...@gmail.com> 2012-06-14 00:51:28 PDT --- (In reply to comment #3) > Created an attachment (id=1115) [details] > failing test case I think this test case is not correct code. (From test case) > alias typeof(Length*Length) Area; > alias typeof(Length*Area) Volume; > alias typeof(Mass/Volume) Density; > alias typeof(Length*Mass/Time/Time) Force; > alias typeof(1/Time) Frequency; > alias typeof(Force/Area) Pressure; > alias typeof(Force*Length) Energy; > alias typeof(Energy/Time) Power; > alias typeof(Time*Current) Charge; > alias typeof(Power/Current) Voltage; > alias typeof(Charge/Voltage) Capacitance; > alias typeof(Voltage/Current) Resistance; > alias typeof(1/Resistance) Conductance; > alias typeof(Voltage*Time) MagneticFlux; > alias typeof(MagneticFlux/Area) MagneticFluxDensity; > alias typeof(MagneticFlux/Current) Inductance; > alias typeof(Intensity*UnitLess) LuminousFlux; > alias typeof(LuminousFlux/Area) Illuminance; As far as I know, normal expressions cannot take Type as their operands, even if it is defined by operator overloading. struct S { void opMul(S s){} } S + S; // this is INVALID code This rule should be applied even in typeof expression, then typeof(Length*Length) must be invalid. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------