diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2020-06-12 02:03:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-12 11:03:52 +0200 |
commit | e30a08103da14d5b1e02d6c04dc2d5afb5b9368d (patch) | |
tree | 225c8dd21b8097b2938b3cf9796d8ba2d5c3c783 /compiler | |
parent | 82e424189ee4bf0f05fcf5695fe1c3e2d2dfc51f (diff) | |
download | Nim-e30a08103da14d5b1e02d6c04dc2d5afb5b9368d.tar.gz |
remove tyOpt, mOpt (#14636)
* remove tyOpt, mOpt * fixup
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ast.nim | 10 | ||||
-rw-r--r-- | compiler/ccgtypes.nim | 2 | ||||
-rw-r--r-- | compiler/jsgen.nim | 9 | ||||
-rw-r--r-- | compiler/liftdestructors.nim | 3 | ||||
-rw-r--r-- | compiler/semtypes.nim | 1 | ||||
-rw-r--r-- | compiler/types.nim | 10 | ||||
-rw-r--r-- | compiler/vmdeps.nim | 2 | ||||
-rw-r--r-- | compiler/vmgen.nim | 2 |
8 files changed, 18 insertions, 21 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim index 76b1d8c91..bc26defd4 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -434,8 +434,8 @@ type # instantiation and prior to this it has the potential to # be any type. - tyOpt - # Builtin optional type + tyOptDeprecated + # deadcode: was `tyOpt`, Builtin optional type tyVoid # now different from tyEmpty, hurray! @@ -658,7 +658,7 @@ type mNewString, mNewStringOfCap, mParseBiggestFloat, mMove, mWasMoved, mDestroy, mDefault, mUnown, mAccessEnv, mReset, - mArray, mOpenArray, mRange, mSet, mSeq, mOpt, mVarargs, + mArray, mOpenArray, mRange, mSet, mSeq, mVarargs, mRef, mPtr, mVar, mDistinct, mVoid, mTuple, mOrdinal, mInt, mInt8, mInt16, mInt32, mInt64, @@ -1492,7 +1492,7 @@ proc isGCedMem*(t: PType): bool {.inline.} = t.kind == tyProc and t.callConv == ccClosure proc propagateToOwner*(owner, elem: PType; propagateHasAsgn = true) = - const HaveTheirOwnEmpty = {tySequence, tyOpt, tySet, tyPtr, tyRef, tyProc} + const HaveTheirOwnEmpty = {tySequence, tySet, tyPtr, tyRef, tyProc} owner.flags = owner.flags + (elem.flags * {tfHasMeta, tfTriggersCompileTime}) if tfNotNil in elem.flags: if owner.kind in {tyGenericInst, tyGenericBody, tyGenericInvocation}: @@ -1505,7 +1505,7 @@ proc propagateToOwner*(owner, elem: PType; propagateHasAsgn = true) = if mask != {} and propagateHasAsgn: let o2 = owner.skipTypes({tyGenericInst, tyAlias, tySink}) if o2.kind in {tyTuple, tyObject, tyArray, - tySequence, tyOpt, tySet, tyDistinct, tyOpenArray, tyVarargs}: + tySequence, tySet, tyDistinct, tyOpenArray, tyVarargs}: o2.flags.incl mask owner.flags.incl mask diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index f7eb1bc34..199d5c918 100644 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -367,7 +367,7 @@ proc getTypeForward(m: BModule, typ: PType; sig: SigHash): Rope = if result != nil: return result = getTypePre(m, typ, sig) if result != nil: return - let concrete = typ.skipTypes(abstractInst + {tyOpt}) + let concrete = typ.skipTypes(abstractInst) case concrete.kind of tySequence, tyTuple, tyObject: result = getTypeName(m, typ, sig) diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 9f022882b..99d2bc4f2 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -193,7 +193,7 @@ proc mapType(typ: PType): TJSTypeKind = of tyBool: result = etyBool of tyFloat..tyFloat128: result = etyFloat of tySet: result = etyObject # map a set to a table - of tyString, tySequence, tyOpt: result = etySeq + of tyString, tySequence: result = etySeq of tyObject, tyArray, tyTuple, tyOpenArray, tyVarargs, tyUncheckedArray: result = etyObject of tyNil: result = etyNull @@ -210,6 +210,7 @@ proc mapType(typ: PType): TJSTypeKind = else: result = etyNone of tyProc: result = etyProc of tyCString: result = etyString + of tyOptDeprecated: doAssert false proc mapType(p: PProc; typ: PType): TJSTypeKind = result = mapType(typ) @@ -1041,7 +1042,7 @@ proc genAsgnAux(p: PProc, x, y: PNode, noCopyNeeded: bool) = # we don't care if it's an etyBaseIndex (global) of a string, it's # still a string that needs to be copied properly: - if x.typ.skipTypes(abstractInst).kind in {tySequence, tyOpt, tyString}: + if x.typ.skipTypes(abstractInst).kind in {tySequence, tyString}: xtyp = etySeq case xtyp of etySeq: @@ -1086,7 +1087,7 @@ proc genFastAsgn(p: PProc, n: PNode) = # See bug #5933. So we try to be more compatible with the C backend semantics # here for 'shallowCopy'. This is an educated guess and might require further # changes later: - let noCopy = n[0].typ.skipTypes(abstractInst).kind in {tySequence, tyOpt, tyString} + let noCopy = n[0].typ.skipTypes(abstractInst).kind in {tySequence, tyString} genAsgnAux(p, n[0], n[1], noCopyNeeded=noCopy) proc genSwap(p: PProc, n: PNode) = @@ -1697,7 +1698,7 @@ proc createVar(p: PProc, typ: PType, indirect: bool): Rope = result = putToSeq("null", indirect) of tySequence, tyString: result = putToSeq("[]", indirect) - of tyCString, tyOpt, tyProc: + of tyCString, tyProc: result = putToSeq("null", indirect) of tyStatic: if t.n != nil: diff --git a/compiler/liftdestructors.nim b/compiler/liftdestructors.nim index 2d8655cae..0346f6c67 100644 --- a/compiler/liftdestructors.nim +++ b/compiler/liftdestructors.nim @@ -703,7 +703,7 @@ proc fillBody(c: var TLiftCtx; t: PType; body, x, y: PNode) = case t.kind of tyNone, tyEmpty, tyVoid: discard of tyPointer, tySet, tyBool, tyChar, tyEnum, tyInt..tyUInt64, tyCString, - tyPtr, tyOpt, tyUncheckedArray, tyVar, tyLent: + tyPtr, tyUncheckedArray, tyVar, tyLent: defaultOp(c, t, body, x, y) of tyRef: if c.g.config.selectedGC in {gcArc, gcOrc}: @@ -785,6 +785,7 @@ proc fillBody(c: var TLiftCtx; t: PType; body, x, y: PNode) = of tyOrdinal, tyRange, tyInferred, tyGenericInst, tyAlias, tySink: fillBody(c, lastSon(t), body, x, y) + of tyOptDeprecated: doAssert false proc produceSymDistinctType(g: ModuleGraph; c: PContext; typ: PType; kind: TTypeAttachedOp; info: TLineInfo): PSym = diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 77da403fa..313328385 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -1814,7 +1814,6 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType = result = semContainer(c, n, tySequence, "seq", prev) if optSeqDestructors in c.config.globalOptions: incl result.flags, tfHasAsgn - of mOpt: result = semContainer(c, n, tyOpt, "opt", prev) of mVarargs: result = semVarargs(c, n, prev) of mTypeDesc, mType, mTypeOf: result = makeTypeDesc(c, semTypeNode(c, n[1], nil)) diff --git a/compiler/types.nim b/compiler/types.nim index e1b283f87..aaaa8e99f 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -608,10 +608,6 @@ proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string = result = "seq" if t.len > 0: result &= "[" & typeToString(t[0]) & ']' - of tyOpt: - result = "opt" - if t.len > 0: - result &= "opt[" & typeToString(t[0]) & ']' of tyOrdinal: result = "ordinal" if t.len > 0: @@ -1150,7 +1146,7 @@ proc sameTypeAux(x, y: PType, c: var TSameTypeClosure): bool = of tyGenericInvocation, tyGenericBody, tySequence, tyOpenArray, tySet, tyRef, tyPtr, tyVar, tyLent, tySink, tyUncheckedArray, tyArray, tyProc, tyVarargs, tyOrdinal, tyCompositeTypeClass, tyUserTypeClass, tyUserTypeClassInst, - tyAnd, tyOr, tyNot, tyAnything, tyOpt, tyOwned: + tyAnd, tyOr, tyNot, tyAnything, tyOwned: cycleCheck() if a.kind == tyUserTypeClass and a.n != nil: return a.n == b.n result = sameChildrenAux(a, b, c) @@ -1173,6 +1169,7 @@ proc sameTypeAux(x, y: PType, c: var TSameTypeClosure): bool = cycleCheck() result = sameTypeAux(a.lastSon, b.lastSon, c) of tyNone: result = false + of tyOptDeprecated: doAssert false proc sameBackendType*(x, y: PType): bool = var c = initSameTypeClosure() @@ -1365,7 +1362,7 @@ proc typeAllowedAux(marker: var IntSet, typ: PType, kind: TSymKind, result = t else: result = typeAllowedAux(marker, lastSon(t), kind, flags-{taHeap}) - of tySequence, tyOpt: + of tySequence: if t[0].kind != tyEmpty: result = typeAllowedAux(marker, t[0], kind, flags+{taHeap}) elif kind in {skVar, skLet}: @@ -1408,6 +1405,7 @@ proc typeAllowedAux(marker: var IntSet, typ: PType, kind: TSymKind, result = typeAllowedAux(marker, t.lastSon, kind, flags+{taHeap}) else: result = t + of tyOptDeprecated: doAssert false proc typeAllowed*(t: PType, kind: TSymKind; flags: TTypeAllowedFlags = {}): PType = # returns 'nil' on success and otherwise the part of the type that is diff --git a/compiler/vmdeps.nim b/compiler/vmdeps.nim index 7cfba046a..6f90b7918 100644 --- a/compiler/vmdeps.nim +++ b/compiler/vmdeps.nim @@ -224,7 +224,6 @@ proc mapTypeToAstX(cache: IdentCache; t: PType; info: TLineInfo; of tyLent: result = mapTypeToBracket("lent", mBuiltinType, t, info) of tySink: result = mapTypeToBracket("sink", mBuiltinType, t, info) of tySequence: result = mapTypeToBracket("seq", mSeq, t, info) - of tyOpt: result = mapTypeToBracket("opt", mOpt, t, info) of tyProc: if inst: result = newNodeX(nkProcTy) @@ -298,6 +297,7 @@ proc mapTypeToAstX(cache: IdentCache; t: PType; info: TLineInfo; if t.n != nil: result.add t.n.copyTree of tyOwned: result = mapTypeToBracket("owned", mBuiltinType, t, info) + of tyOptDeprecated: doAssert false proc opMapTypeToAst*(cache: IdentCache; t: PType; info: TLineInfo): PNode = result = mapTypeToAstX(cache, t, info, inst=false, allowRecursionX=true) diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index b408db08b..52b7b6eb3 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -1820,8 +1820,6 @@ proc getNullValue(typ: PType, info: TLineInfo; conf: ConfigRef): PNode = result.add getNullValue(t[i], info, conf) of tySet: result = newNodeIT(nkCurly, info, t) - of tyOpt: - result = newNodeIT(nkNilLit, info, t) of tySequence: result = newNodeIT(nkBracket, info, t) else: |