Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
December 02, 2011 [Issue 7046] New: CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=7046 Summary: CTFE: append null does nothing Product: D Version: D2 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: destructionator@gmail.com --- Comment #0 from Adam D. Ruppe <destructionator@gmail.com> 2011-12-01 18:07:38 PST --- string[] test() { string[] ret; ret ~= null; ret ~= null; assert(ret.length == 2); // fails return ret; } void main() { enum ctfe = test(); } === test90.d(7): Error: assert(ret.length == 2u) failed test90.d(12): called from here: a() -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au --- Comment #1 from Don <clugdbug@yahoo.com.au> 2011-12-02 02:57:40 PST --- This works on git HEAD. Probably a duplicate of a recently fixed bug. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 Steven Schveighoffer <schveiguy@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |schveiguy@yahoo.com --- Comment #2 from Steven Schveighoffer <schveiguy@yahoo.com> 2011-12-02 04:30:34 PST --- Are we sure this isn't expected? I mean a null could mean a null string[], not a null string. string[] ret; string[] a = null; ret ~= a; ret ~= a; neither of these lines should do anything to ret, since they are empty arrays of the same type. I almost think the code in question should fail to compile for being too ambiguous. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 --- Comment #3 from Don <clugdbug@yahoo.com.au> 2011-12-02 04:44:28 PST --- See bug 2006. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 bearophile_hugs@eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs@eml.cc --- Comment #4 from bearophile_hugs@eml.cc 2011-12-02 04:48:35 PST --- (In reply to comment #2) > I almost think the code in question should fail to compile for being too ambiguous. Right. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 --- Comment #5 from Steven Schveighoffer <schveiguy@yahoo.com> 2011-12-02 04:54:29 PST --- (In reply to comment #3) > See bug 2006. So is this a dupe? I'm concerned there was a change in git that makes this "work." Moving from one ambiguous interpretation to another doesn't sound like progress. Do we have some definitive answer on what *should* happen? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 --- Comment #6 from Adam D. Ruppe <destructionator@gmail.com> 2011-12-02 07:47:17 PST --- (In reply to comment #2) > I mean a null could mean a null string[], not a null string. I oversimplified the test - in the original code it came from, it was more like string a = null; ret ~= a; which gets the same result in 2.056 I haven't tried git though. I'm not sure how to use that yet! > I almost think the code in question should fail to compile for being too ambiguous. With null itself... maybe. In the case of string[], ~= null could have two meanings, but one of them is pretty obviously a no-op, so it's probably not what you meant. If a variable happens to be null, maybe doing nothing is what you wanted, but in that case, the variable has an exact type declared so it's not ambiguous anymore. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 02, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 --- Comment #7 from Adam D. Ruppe <destructionator@gmail.com> 2011-12-02 07:53:36 PST --- BTW, I labeled this as CTFE because in 2.056, running the same function at runtime, the assert passes. I think this worked in CTFE a couple releases ago too, and since it works in the git version again, it was probably just a temporary regression in the interpreter. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 14, 2011 [Issue 7046] CTFE: append null does nothing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | http://d.puremagic.com/issues/show_bug.cgi?id=7046 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #8 from Don <clugdbug@yahoo.com.au> 2011-12-14 08:35:17 PST --- This compiled on DMD2.053, but generated wrong code. It failed to compile on 2.054 to 2.056. Fixed 2.057 -- dup of bug 6077 *** This issue has been marked as a duplicate of issue 6077 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation