-
-
Notifications
You must be signed in to change notification settings - Fork 610
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue 12487 - DMD correctly reports excessive CTFE recursion, but not template recursion #4731
Conversation
f812c0f to
537fceb
Compare
|
Fixed trailing space in |
|
Rebased on master, and ready for ddmd. |
bb48114 to
5e4ea47
Compare
|
Couldn't this be 5 PRs instead of one? |
|
@WalterBrigt A commit depends on the previous commits. So this cannot be 5 independent PRs. |
|
The 'Refactor ScopeExp::semantic()' appears to be independent. |
|
@WalterBright Yes, but latter 4 commits depend on that refactoring. I don't like to create multiple "dependent PRs", because their maintenance is troublesome. |
|
@WalterBright I've separated the first commit to #5132. Is that reviewable/mergeable to you? |
db6679c to
4ecebca
Compare
|
2nd separation: #5135 |
|
3rd separation: #5142 |
46977ea to
3e4497d
Compare
|
Last separation! #5149 |
… not template recursion
|
Auto-merge toggled on |
Issue 12487 - DMD correctly reports excessive CTFE recursion, but not template recursion
https://issues.dlang.org/show_bug.cgi?id=12487
When an instance that will be converted to a constant exists, the instance representation "foo!tiargs" is treated like a variable name, and its recursive appearance check (note that it's equivalent with a recursive instantiation of foo) is done separately from the recursive definition check for the eponymous enum variable declaration.
By the approach, we can remove problematic
global.gagcheck inDsymbolExp::semantic()without breakingfail_compilation/diag10141.d.