[dmd-internals] [D-Programming-Language/dmd] d7850a: 6751 [CTFE] ref argument of AA doesn't work

Don Clugston dclugston at googlemail.com
Tue Oct 4 17:54:53 PDT 2011


This has broken the autotester, in the inline case.
Quick fix while I track it down:
interpret3.d, line 2601.

static assert({
    S6751 s;
    s.aa[7][56]=57;
    bug6751b(s.aa);
    assert(s.aa[1][17] == 2);
    assert(s.aa[7][56] == 57);
    bug6751c(s.aa);
-    assert(s.aa.keys.length==1);
+    assert(s.aa.length==1);
    return true;
}());


On 4 October 2011 22:32,  <noreply at github.com> wrote:
>  Branch: refs/heads/master
>  Home:   https://github.com/D-Programming-Language/dmd
>
>  Commit: d7850aca8ffa8bcb5c4e5d68ab27bfeda3524278
>      https://github.com/D-Programming-Language/dmd/commit/d7850aca8ffa8bcb5c4e5d68ab27bfeda3524278
>  Author: Don Clugston <dclugston at googlemail.com>
>  Date:   2011-10-04 (Tue, 04 Oct 2011)
>
>  Changed paths:
>    M src/interpret.c
>
>  Log Message:
>  -----------
>  6751 [CTFE] ref argument of AA doesn't work
>
> There are three cases: (1) reference is null, and gets changed to non-null;
> (2) ref is non-null, and gets new entries;
> (3) ref is non-null, but gets replaced with a non-null literal.
> There were two separate bugs: one was failing to treat case(1) as a
> reference assignment; and the second was treating the AA literal as non-ref
> in case (2).
>
>
>  Commit: d0ec9c0cc42dacf6b425b9f35b4162c9cecde577
>      https://github.com/D-Programming-Language/dmd/commit/d0ec9c0cc42dacf6b425b9f35b4162c9cecde577
>  Author: Don Clugston <dclugston at googlemail.com>
>  Date:   2011-10-04 (Tue, 04 Oct 2011)
>
>  Changed paths:
>    M test/compilable/interpret3.d
>
>  Log Message:
>  -----------
>  Test cases for S6751
>
> Four distinct cases are tested.
>
>
>  Commit: dc488a174071f97129aafcab3f24b3e414988f11
>      https://github.com/D-Programming-Language/dmd/commit/dc488a174071f97129aafcab3f24b3e414988f11
>  Author: Don Clugston <dclugston at googlemail.com>
>  Date:   2011-10-04 (Tue, 04 Oct 2011)
>
>  Changed paths:
>    M src/interpret.c
>
>  Log Message:
>  -----------
>  6765 [CTFE]: AA.length doesn't compile when AA is null
>
> I also combined the D1 and D2 code for AA length. Tested on both D1+D2.
>
>
>  Commit: 06e3cdc69f5d7a50dce1792eaed0b34f57e90a2a
>      https://github.com/D-Programming-Language/dmd/commit/06e3cdc69f5d7a50dce1792eaed0b34f57e90a2a
>  Author: Don Clugston <dclugston at googlemail.com>
>  Date:   2011-10-04 (Tue, 04 Oct 2011)
>
>  Changed paths:
>    M test/compilable/interpret3.d
>
>  Log Message:
>  -----------
>  Test case for 6765
>
>
>  Commit: e807a1f2a593a8357668bdd905f8c660b2198ef2
>      https://github.com/D-Programming-Language/dmd/commit/e807a1f2a593a8357668bdd905f8c660b2198ef2
>  Author: Walter Bright <walter at walterbright.com>
>  Date:   2011-10-04 (Tue, 04 Oct 2011)
>
>  Changed paths:
>    M src/interpret.c
>  M test/compilable/interpret3.d
>
>  Log Message:
>  -----------
>  Merge pull request #428 from donc/ctfebreak
>
> Fixes for CTFE AA bugs 6751 and 6765
>
>
> Compare: https://github.com/D-Programming-Language/dmd/compare/51d8385...e807a1f
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>


More information about the dmd-internals mailing list