Thread overview |
---|
March 03, 2007 [Issue 1017] New: CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=1017 Summary: CTFE doesn't support (string == string) Product: D Version: 1.007 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: reiner.pope@gmail.com The following code fails in DMD 1.007: void main() { static assert(equals("alphabet", "alphabet")); } bool equals(char[] a, char[] b) { return (a == b); } equality.d(3): static assert (equals("alphabet","alphabet")) is not evaluatable at compile time -- |
March 03, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 ------- Comment #1 from bugzilla@digitalmars.com 2007-03-03 12:51 ------- Put equals() before main() and it should work. -- |
March 03, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 ------- Comment #2 from fvbommel@wxs.nl 2007-03-03 13:00 ------- (In reply to comment #1) > Put equals() before main() and it should work. It doesn't: --- urxae@urxae:~/tmp$ cat test.d bool equals(char[] a, char[] b) { return (a == b); } void main() { static assert(equals("alphabet", "alphabet")); } urxae@urxae:~/tmp$ dmd test.d test.d(8): static assert (equals("alphabet","alphabet")) is not evaluatable at compile time --- -- |
March 04, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 smjg@iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg@iname.com Keywords| |rejects-valid ------- Comment #3 from smjg@iname.com 2007-03-04 13:04 ------- (In reply to comment #1) > Put equals() before main() and it should work. Under which platform did you observe a dependency on the order of declarations in this instance? Clearly not that on which the reporter reported the problem. -- |
March 04, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 fvbommel@wxs.nl changed: What |Removed |Added ---------------------------------------------------------------------------- OS/Version|Windows |All ------- Comment #4 from fvbommel@wxs.nl 2007-03-04 13:19 ------- (In reply to comment #3) > (In reply to comment #1) > > Put equals() before main() and it should work. > > Under which platform did you observe a dependency on the order of declarations in this instance? Clearly not that on which the reporter reported the problem. Actually, it could be the same as the reporter. My test of Walter's theory was done on Linux, while the reporter is appears to be using Windows. I have no idea if it works on Windows if the order is switched, but I _can_ confirm this bug on Linux, so I'll just change the OS setting to 'all'... -- |
March 05, 2007 Re: [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | d-bugmail@puremagic.com wrote:
> http://d.puremagic.com/issues/show_bug.cgi?id=1017
>
>
> fvbommel@wxs.nl changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> OS/Version|Windows |All
>
>
>
>
> ------- Comment #4 from fvbommel@wxs.nl 2007-03-04 13:19 -------
> (In reply to comment #3)
>> (In reply to comment #1)
>>> Put equals() before main() and it should work.
>> Under which platform did you observe a dependency on the order of declarations
>> in this instance? Clearly not that on which the reporter reported the problem.
>
> Actually, it could be the same as the reporter. My test of Walter's theory was
> done on Linux, while the reporter is appears to be using Windows.
> I have no idea if it works on Windows if the order is switched, but I _can_
> confirm this bug on Linux, so I'll just change the OS setting to 'all'...
>
>
That's correct. I haven't found any configuration where it compiles under Windows -- and I tried pretty hard to get around this one... for example, slicing the arrays does not help. Even this (arguably simpler) variation doesn't work:
bool a()
{
return "x"!="y";
}
void main()
{
static assert( a() );
}
|
March 08, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 ------- Comment #6 from thomas-dloop@kuehne.cn 2007-03-08 10:29 ------- Added to DStress as http://dstress.kuehne.cn/compile/o/opEquals_07_A.d http://dstress.kuehne.cn/compile/o/opEquals_07_B.d http://dstress.kuehne.cn/compile/o/opEquals_07_C.d http://dstress.kuehne.cn/compile/o/opEquals_07_D.d http://dstress.kuehne.cn/compile/o/opEquals_07_E.d http://dstress.kuehne.cn/compile/o/opEquals_07_F.d -- |
March 12, 2007 [Issue 1017] CTFE doesn't support (string == string) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1017 thomas-dloop@kuehne.cn changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #7 from thomas-dloop@kuehne.cn 2007-03-12 01:23 ------- Fixed in DMD-1.009 -- |
Copyright © 1999-2021 by the D Language Foundation