Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
January 08, 2010 [Issue 3692] New: Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3692 Summary: Compiler with associative arrays when std.variant is imported Product: D Version: 2.038 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: lmb@stackedboxes.org --- Comment #0 from Leandro Motta Barros <lmb@stackedboxes.org> 2010-01-08 12:35:25 PST --- First, I am using DMD 2.039, for which there is no entry on the "Version" field. Anyway, I firstly bumped into this when using DMD 2.037. So, when compiling this code: import std.variant; void main() { bool[int] a; auto x = a.keys[0]; } The compiler crashes saying: deferring sigaction_t dmd: mtype.c:3882: StructDeclaration* TypeAArray::getImpl(): Assertion `impl' failed. --- Removing the 'import std.variant;' statement solves the problem. Replacing the 'bool[int]' with 'int[int]' (and still importing std.variant) makes the compiler say: deferring sigaction_t But it still generates the executable, which seems to work as expected (that is, throwing a "Range Violation"). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 09, 2010 [Issue 3692] Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |clugdbug@yahoo.com.au Resolution| |DUPLICATE --- Comment #1 from Don <clugdbug@yahoo.com.au> 2010-01-08 22:01:28 PST --- *** This issue has been marked as a duplicate of issue 3552 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 05, 2010 [Issue 3692] Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Leandro Motta Barros <lmb@stackedboxes.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Version|2.038 |2.040 Resolution|DUPLICATE | --- Comment #2 from Leandro Motta Barros <lmb@stackedboxes.org> 2010-02-05 04:18:36 PST --- This bug has been marked as duplicate of issue 3552, so it should supposedly be fixed in DMD 2.040. Unfortunately, it was not. Using DMD 2.040 to compile the same code as before: import std.variant; void main() { bool[int] a; auto x = a.keys[0]; } I get the same compiler crash as before: dmd: mtype.c:3886: StructDeclaration* TypeAArray::getImpl(): Assertion `impl' failed. So, unless I'm doing something very wrong here, I suppose this bug still persists. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 05, 2010 [Issue 3692] Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 --- Comment #3 from Leandro Motta Barros <lmb@stackedboxes.org> 2010-02-05 04:42:50 PST --- Just one additional detail: In the program where I noticed this problem for the first time, as suggested by others, I worked around the bug by using a copy of std.variant.d with all the occurrences of "AssociativeArray" replaced with something else. I tried going back to std.variant in my program, and the crash was still there. In other words, it seems that the bug still has something to do with identifiers named "AssociativeArray". (That said, this code: void main() { int AssociativeArray; int[int] foo; foreach (x; foo) { } } which I took from issue 3552, compiles cleanly here, which seems to indicate that I am *really* running DMD 2.040 here ;-)) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 05, 2010 [Issue 3692] Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 --- Comment #4 from Don <clugdbug@yahoo.com.au> 2010-02-05 06:23:12 PST --- (In reply to comment #3) > Just one additional detail: > > In the program where I noticed this problem for the first time, as suggested by others, I worked around the bug by using a copy of std.variant.d with all the occurrences of "AssociativeArray" replaced with something else. > > I tried going back to std.variant in my program, and the crash was still there. In other words, it seems that the bug still has something to do with identifiers named "AssociativeArray". Yes. Reduced test case: --------- import file2; void main() { bool[int] a; auto x = a.keys[0]; } ------- file2: -------- int AssociativeArray; ------------------------------ Basically my patch fixed the specific case of bug 3552 but failed in the general case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 05, 2010 [Issue 3692] Compiler with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-valid-code, patch Severity|normal |regression --- Comment #5 from Don <clugdbug@yahoo.com.au> 2010-02-05 06:40:24 PST --- PATCH: mtype.c line 3870 - // Create .AssociativeArray!(index, next) + // Create object.AssociativeArray!(index, next) DotTemplateInstanceExp *dti = new DotTemplateInstanceExp(loc, - new IdentifierExp(loc, Id::empty), + new IdentifierExp(loc, Id::object), Id::AssociativeArray, tiargs); Or possibly it should be .object.AssociativeArray -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 12, 2010 [Issue 3692] ICE(mtype.c) with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #6 from Walter Bright <bugzilla@digitalmars.com> 2010-02-11 22:25:50 PST --- Changeset 377 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 12, 2010 [Issue 3692] ICE(mtype.c) with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Kosmonaut <Kosmonaut@tempinbox.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |Kosmonaut@tempinbox.com --- Comment #7 from Kosmonaut <Kosmonaut@tempinbox.com> 2010-02-12 11:43:50 PST --- (In reply to comment #6) > Changeset 377 http://www.dsource.org/projects/dmd/changeset/377 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 09, 2010 [Issue 3692] ICE(mtype.c) with associative arrays when std.variant is imported | ||||
---|---|---|---|---|
| ||||
Posted in reply to Leandro Motta Barros | http://d.puremagic.com/issues/show_bug.cgi?id=3692 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |FIXED --- Comment #8 from Walter Bright <bugzilla@digitalmars.com> 2010-03-08 22:27:23 PST --- Fixed dmd 2.041 -- 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