diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2020-04-01 23:53:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-02 08:53:52 +0200 |
commit | 68539a2926dd5937e6af640ead200726b46b80b6 (patch) | |
tree | d98167f144fecd908c24cb83dcc10344e30832ed /compiler/ast.nim | |
parent | c1672617350ff1b0b2c6d352d026c87729a056f0 (diff) | |
download | Nim-68539a2926dd5937e6af640ead200726b46b80b6.tar.gz |
fix last remaining warning when building nim (`intVal should be Int128`) + minor cleanups (#13841)
Diffstat (limited to 'compiler/ast.nim')
-rw-r--r-- | compiler/ast.nim | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim index f4f680811..d7d0ef224 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -456,6 +456,9 @@ const tyMetaTypes* = {tyGenericParam, tyTypeDesc, tyUntyped} + tyTypeClasses tyUserTypeClasses* = {tyUserTypeClass, tyUserTypeClassInst} + # consider renaming as `tyAbstractVarRange` + abstractVarRange* = {tyGenericInst, tyRange, tyVar, tyDistinct, tyOrdinal, + tyTypeDesc, tyAlias, tyInferred, tySink, tyOwned} type TTypeKinds* = set[TTypeKind] @@ -1272,12 +1275,8 @@ proc skipTypes*(t: PType, kinds: TTypeKinds): PType = while result.kind in kinds: result = lastSon(result) proc newIntTypeNode*(intVal: BiggestInt, typ: PType): PNode = - - # this is dirty. abstractVarRange isn't defined yet and therefore it - # is duplicated here. - const abstractVarRange = {tyGenericInst, tyRange, tyVar, tyDistinct, tyOrdinal, - tyTypeDesc, tyAlias, tyInferred, tySink, tyOwned} - case skipTypes(typ, abstractVarRange).kind + let kind = skipTypes(typ, abstractVarRange).kind + case kind of tyInt: result = newNode(nkIntLit) of tyInt8: result = newNode(nkInt8Lit) of tyInt16: result = newNode(nkInt16Lit) @@ -1289,9 +1288,12 @@ proc newIntTypeNode*(intVal: BiggestInt, typ: PType): PNode = of tyUInt16: result = newNode(nkUInt16Lit) of tyUInt32: result = newNode(nkUInt32Lit) of tyUInt64: result = newNode(nkUInt64Lit) - else: # tyBool, tyEnum + of tyBool,tyEnum: # XXX: does this really need to be the kind nkIntLit? result = newNode(nkIntLit) + of tyStatic: # that's a pre-existing bug, will fix in another PR + result = newNode(nkIntLit) + else: doAssert false, $kind result.intVal = intVal result.typ = typ |