[dmd-internals] [D-Programming-Language/dmd] 779349: [Refactoring] Rename field sds to scopesym

GitHub via dmd-internals dmd-internals at puremagic.com
Wed May 13 14:38:15 PDT 2015


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: 779349be2f0298f72ca1dd7a8167e1eea6debba8
      https://github.com/D-Programming-Language/dmd/commit/779349be2f0298f72ca1dd7a8167e1eea6debba8
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2015-05-13 (Wed, 13 May 2015)

  Changed paths:
    M src/attrib.c
    M src/attrib.h

  Log Message:
  -----------
  [Refactoring] Rename field sds to scopesym

Because it was confusing with parameter `sds` in some member functions.


  Commit: d0c854a1722c286777c5e48e0780e5318a986f49
      https://github.com/D-Programming-Language/dmd/commit/d0c854a1722c286777c5e48e0780e5318a986f49
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2015-05-13 (Wed, 13 May 2015)

  Changed paths:
    M src/cond.c
    A test/fail_compilation/fail7815.d
    M test/runnable/xtest46.d

  Log Message:
  -----------
  Move issue 7815 case to fail_compilation, because it was invalid

It was wrongly accepted by the bug in `StaticIfCondition::include()`.

Bug explanation copied from fail_compilation/fail7815.d:
----
When the Move struct member is analyzed:
1. mixin Helpers!() is instantiated.
2. In Helpers!(), static if and its condition is(Flags!Move)) evaluated.
3. In Flags!Move, string mixin evaluates and CTFE lambda.
4. __traits(derivedMembers, Move) tries to see the member of Move.
   4a. mixin Helpers!() member is analyzed.
   4b. `static if (is(Flags!Move))` in Helpers!() is evaluated
   4c. The Flags!Move instantiation is already in progress, so it cannot be resolved.
   4d. `static if` fails because Flags!Move cannot be determined as a type.
5. __traits(derivedMembers, Move) returns a 1-length tuple("a").
6. The lambda in Flags!Move returns a string "struct Flags {...}", then
   Flags!Move is instantiated to a new struct Flags.
7. Finally Move struct does not have flags member, then the `enum a7815`
   definition will fail in its initializer.


  Commit: a0791d5236be84fa085da2d54e8b1f3e14123e26
      https://github.com/D-Programming-Language/dmd/commit/a0791d5236be84fa085da2d54e8b1f3e14123e26
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2015-05-13 (Wed, 13 May 2015)

  Changed paths:
    M src/attrib.c
    M test/compilable/testfwdref.d

  Log Message:
  -----------
  fix Issue 14549 - isVirtualMethod does not work well with Github DMD


  Commit: 0bbde0bc89830f65ed5634606b35fe173c1145ff
      https://github.com/D-Programming-Language/dmd/commit/0bbde0bc89830f65ed5634606b35fe173c1145ff
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2015-05-13 (Wed, 13 May 2015)

  Changed paths:
    M src/attrib.c
    M test/compilable/testfwdref.d

  Log Message:
  -----------
  Fix regression case, defer string mixin resolution


  Commit: 5ae249a6737e2bd048eeef3b4897464b567b3408
      https://github.com/D-Programming-Language/dmd/commit/5ae249a6737e2bd048eeef3b4897464b567b3408
  Author: Walter Bright <walter at walterbright.com>
  Date:   2015-05-13 (Wed, 13 May 2015)

  Changed paths:
    M src/attrib.c
    M src/attrib.h
    M src/cond.c
    M test/compilable/testfwdref.d
    A test/fail_compilation/fail7815.d
    M test/runnable/xtest46.d

  Log Message:
  -----------
  Merge pull request #4635 from 9rnsr/fix14549

Issue 14549 - isVirtualMethod does not work well with Github DMD


Compare: https://github.com/D-Programming-Language/dmd/compare/acbe13ee54e0...5ae249a6737e


More information about the dmd-internals mailing list