March 23, 2013 [dmd-internals] [D-Programming-Language/dmd] ac8979: fix Issue 9650 - __traits(compiles) + mixin | ||||
---|---|---|---|---|
| ||||
Attachments:
| 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@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@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 |
Copyright © 1999-2021 by the D Language Foundation