progress towards adding negative type classes
[unittest bugfixes] the block form of check now allows comments errors when inspecting the arguments of var-accepting procs
This commit is contained in:
parent
208924b929
commit
de3b7cd413
9 changed files with 267 additions and 46 deletions
|
|
@ -335,12 +335,19 @@ type
|
|||
tyConst, tyMutable, tyVarargs,
|
||||
tyIter, # unused
|
||||
tyProxy # used as errornous type (for idetools)
|
||||
tyTypeClass,
|
||||
tyTypeClass
|
||||
tyAnd
|
||||
tyOr
|
||||
tyNot
|
||||
tyAnything
|
||||
tyParametricTypeClass # structured similarly to tyGenericInst
|
||||
# lastSon is the body of the type class
|
||||
|
||||
const
|
||||
tyPureObject* = tyTuple
|
||||
GcTypeKinds* = {tyRef, tySequence, tyString}
|
||||
tyError* = tyProxy # as an errornous node should match everything
|
||||
tyTypeClasses* = {tyTypeClass, tyParametricTypeClass, tyAnd, tyOr, tyNot, tyAnything}
|
||||
|
||||
type
|
||||
TTypeKinds* = set[TTypeKind]
|
||||
|
|
@ -377,6 +384,7 @@ type
|
|||
# used as return types for return type inference)
|
||||
tfAll, # type class requires all constraints to be met (default)
|
||||
tfAny, # type class requires any constraint to be met
|
||||
tfNot, # type class with a negative check
|
||||
tfCapturesEnv, # whether proc really captures some environment
|
||||
tfByCopy, # pass object/tuple by copy (C backend)
|
||||
tfByRef, # pass object/tuple by reference (C backend)
|
||||
|
|
@ -1416,3 +1424,4 @@ proc isAtom*(n: PNode): bool {.inline.} =
|
|||
proc isEmptyType*(t: PType): bool {.inline.} =
|
||||
## 'void' and 'stmt' types are often equivalent to 'nil' these days:
|
||||
result = t == nil or t.kind in {tyEmpty, tyStmt}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue