diff options
author | Lancer11211 <109360848+Lancer11211@users.noreply.github.com> | 2022-07-26 07:40:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 07:40:49 +0200 |
commit | efd5c571bf3de5c3b496be92fcf9a403898084f1 (patch) | |
tree | 96783d605424787dd811f5372152a4101800a395 /compiler/ast.nim | |
parent | 62b81d7f109b2ec4b249a0abea121d7e0bc14d86 (diff) | |
download | Nim-efd5c571bf3de5c3b496be92fcf9a403898084f1.tar.gz |
.forbids pragma: defining forbidden tags (#20050)
* .forbids pragma: defining illegal effects for proc types This patch intends to define the opposite of the .tags pragma: a way to define effects which are not allowed in a proc. * updated documentation and changelogs for the forbids pragma * renamed notTagEffects to forbiddenEffects * corrected issues of forbids pragma the forbids pragma didn't handle simple restrictions properly and it also had issues with subtyping * removed incorrect character from changelog * added test to cover the interaction of methods and the forbids pragma * covering the interaction of the tags and forbids pragmas * updated manual about the forbids pragma * removed useless statement * corrected the subtyping of proc types using the forbids pragma * updated manual for the forbids pragma * updated documentations for forbids pragma * updated nim docs * updated docs with rsttester.nim * regenerated documentation * updated rst docs * Update changelog.md Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com> * updated changelog * corrected typo Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
Diffstat (limited to 'compiler/ast.nim')
-rw-r--r-- | compiler/ast.nim | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim index 6610a1333..27e4fab63 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -347,7 +347,8 @@ const ensuresEffects* = 2 # 'ensures' annotation tagEffects* = 3 # user defined tag ('gc', 'time' etc.) pragmasEffects* = 4 # not an effect, but a slot for pragmas in proc type - effectListLen* = 5 # list of effects list + forbiddenEffects* = 5 # list of illegal effects + effectListLen* = 6 # list of effects list nkLastBlockStmts* = {nkRaiseStmt, nkReturnStmt, nkBreakStmt, nkContinueStmt} # these must be last statements in a block |