Now analyzes over magics instead of symbol names; but dosn't compile for me

This commit is contained in:
Veladus 2017-12-11 21:49:28 +01:00
commit 15f72d0cf1
3 changed files with 4 additions and 3 deletions

View file

@ -639,7 +639,8 @@ type
mEqIdent, mEqNimrodNode, mSameNodeType, mGetImpl, mEqIdent, mEqNimrodNode, mSameNodeType, mGetImpl,
mNHint, mNWarning, mNError, mNHint, mNWarning, mNError,
mInstantiationInfo, mGetTypeInfo, mNGenSym, mInstantiationInfo, mGetTypeInfo, mNGenSym,
mNimvm, mIntDefine, mStrDefine, mRunnableExamples mNimvm, mIntDefine, mStrDefine, mRunnableExamples,
mException
# things that we can evaluate safely at compile time, even if not asked for it: # things that we can evaluate safely at compile time, even if not asked for it:
const const

View file

@ -733,7 +733,7 @@ proc semRaise(c: PContext, n: PNode): PNode =
# check if the given object inherits from Exception # check if the given object inherits from Exception
var base = typ.lastSon var base = typ.lastSon
while true: while true:
if base.sym.name.s == "Exception": if base.sym.magic == mException:
break break
if base.lastSon == nil: if base.lastSon == nil:
localError(n.info, "raised object of type $1 does not inherit from Exception", [typ.sym.name.s]) localError(n.info, "raised object of type $1 does not inherit from Exception", [typ.sym.name.s])

View file

@ -463,7 +463,7 @@ type
line*: int ## line number of the proc that is currently executing line*: int ## line number of the proc that is currently executing
filename*: cstring ## filename of the proc that is currently executing filename*: cstring ## filename of the proc that is currently executing
Exception* {.compilerproc.} = object of RootObj ## \ Exception* {.compilerproc, magic: "Exception".} = object of RootObj ## \
## Base exception class. ## Base exception class.
## ##
## Each exception has to inherit from `Exception`. See the full `exception ## Each exception has to inherit from `Exception`. See the full `exception