[dmd-internals] [D-Programming-Language/dmd] ac8979: fix Issue 9650 - __traits(compiles) + mixin

GitHub noreply at github.com
Sat Mar 23 12:19:54 PDT 2013


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: ac89791f2a4c54cb255ee7e802fde74643b12412
      https://github.com/D-Programming-Language/dmd/commit/ac89791f2a4c54cb255ee7e802fde74643b12412
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-03-08 (Fri, 08 Mar 2013)

  Changed paths:
    M src/expression.c

  Log Message:
  -----------
  fix Issue 9650 - __traits(compiles) + mixin

I couldn't minimize test case, but the bug fix is obvious.

The bug had been hiding for a long time, but recent Phobos change (https://github.com/D-Programming-Language/phobos/commit/2a88fea7867f33fd1cf15c2dca7790a3c8aea474) had exposed the bug.

When a mixin expression gets invalid code string, the parsing error had not handled correctly. In such case, it had generated *invalid* AST instead of returning ErrorExp. I guess that the invalid AST would report weird error in later semantic analysis.

I think that both CompileDeclaration and CompileStatement do not have same problem. So they are not changed.


  Commit: 618d8277aaf20c9f8d8eebc39289e3d2a1c63d42
      https://github.com/D-Programming-Language/dmd/commit/618d8277aaf20c9f8d8eebc39289e3d2a1c63d42
  Author: Walter Bright <walter at walterbright.com>
  Date:   2013-03-23 (Sat, 23 Mar 2013)

  Changed paths:
    M src/expression.c

  Log Message:
  -----------
  Merge pull request #1728 from 9rnsr/fix9650

Issue 9650 - __traits(compiles) + mixin


Compare: https://github.com/D-Programming-Language/dmd/compare/8f9fe3ba2dbe...618d8277aaf2


More information about the dmd-internals mailing list