diff options
Diffstat (limited to 'compiler/sigmatch.nim')
-rw-r--r-- | compiler/sigmatch.nim | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index 2c22620da..10141e645 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -167,7 +167,7 @@ proc initCandidate*(ctx: PContext, c: var TCandidate, callee: PSym, initIdTable(c.bindings) if binding != nil and callee.kind in routineKinds: var typeParams = callee.ast[genericParamsPos] - for i in 1..min(sonsLen(typeParams), sonsLen(binding)-1): + for i in 1..min(len(typeParams), len(binding)-1): var formalTypeParam = typeParams.sons[i-1].typ var bound = binding[i].typ if bound != nil: @@ -334,7 +334,7 @@ proc describeArgs*(c: PContext, n: PNode, startIdx = 1; n.sons[i] = arg if arg.typ != nil and arg.typ.kind == tyError: return add(result, argTypeToString(arg, prefer)) - if i != sonsLen(n) - 1: add(result, ", ") + if i != len(n) - 1: add(result, ", ") proc typeRel*(c: var TCandidate, f, aOrig: PType, flags: TTypeRelFlags = {}): TTypeRelation @@ -440,7 +440,7 @@ proc handleFloatRange(f, a: PType): TTypeRelation = proc genericParamPut(c: var TCandidate; last, fGenericOrigin: PType) = if fGenericOrigin != nil and last.kind == tyGenericInst and last.len-1 == fGenericOrigin.len: - for i in 1 ..< sonsLen(fGenericOrigin): + for i in 1 ..< len(fGenericOrigin): let x = PType(idTableGet(c.bindings, fGenericOrigin.sons[i])) if x == nil: put(c, fGenericOrigin.sons[i], last.sons[i]) @@ -518,16 +518,16 @@ proc recordRel(c: var TCandidate, f, a: PType): TTypeRelation = result = isNone if sameType(f, a): result = isEqual - elif sonsLen(a) == sonsLen(f): + elif len(a) == len(f): result = isEqual let firstField = if f.kind == tyTuple: 0 else: 1 - for i in firstField ..< sonsLen(f): + for i in firstField ..< len(f): var m = typeRel(c, f.sons[i], a.sons[i]) if m < isSubtype: return isNone result = minRel(result, m) if f.n != nil and a.n != nil: - for i in 0 ..< sonsLen(f.n): + for i in 0 ..< len(f.n): # check field names: if f.n.sons[i].kind != nkSym: return isNone elif a.n.sons[i].kind != nkSym: return isNone @@ -607,7 +607,7 @@ proc procParamTypeRel(c: var TCandidate, f, a: PType): TTypeRelation = proc procTypeRel(c: var TCandidate, f, a: PType): TTypeRelation = case a.kind of tyProc: - if sonsLen(f) != sonsLen(a): return + if len(f) != len(a): return result = isEqual # start with maximum; also correct for no # params at all @@ -617,7 +617,7 @@ proc procTypeRel(c: var TCandidate, f, a: PType): TTypeRelation = # Note: We have to do unification for the parameters before the # return type! - for i in 1 ..< f.sonsLen: + for i in 1 ..< f.len: checkParam(f.sons[i], a.sons[i]) if f.sons[0] != nil: @@ -943,7 +943,7 @@ proc isCovariantPtr(c: var TCandidate, f, a: PType): bool = of tyGenericInst: let body = f.base return body == a.base and - a.sonsLen == 3 and + a.len == 3 and tfWeakCovariant notin body.sons[0].flags and baseTypesCheck(f.sons[1], a.sons[1]) else: @@ -1416,7 +1416,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, # YYYY result = isEqual - for i in 1 .. rootf.sonsLen-2: + for i in 1 .. rootf.len-2: let ff = rootf.sons[i] let aa = roota.sons[i] let res = typeRel(c, ff, aa, nextFlags) @@ -1497,8 +1497,8 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, # simply no match for now: discard elif x.kind == tyGenericInst and f.sons[0] == x.sons[0] and - sonsLen(x) - 1 == sonsLen(f): - for i in 1 ..< sonsLen(f): + len(x) - 1 == len(f): + for i in 1 ..< len(f): if x.sons[i].kind == tyGenericParam: internalError(c.c.graph.config, "wrong instantiated type!") elif typeRel(c, f.sons[i], x.sons[i]) <= isSubtype: @@ -1506,7 +1506,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, if f.sons[i].kind != tyTypeDesc: return result = isGeneric elif x.kind == tyGenericInst and isGenericSubtype(c, x, f, depth, f) and - (sonsLen(x) - 1 == sonsLen(f)): + (len(x) - 1 == len(f)): # do not recurse here in order to not K bind twice for this code: # # type @@ -1538,7 +1538,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, # var it1 = internalFind(root, 312) # cannot instantiate: 'D' # # we steal the generic parameters from the tyGenericBody: - for i in 1 ..< sonsLen(f): + for i in 1 ..< len(f): let x = PType(idTableGet(c.bindings, genericBody.sons[i-1])) if x == nil: discard "maybe fine (for eg. a==tyNil)" @@ -1643,7 +1643,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, let roota = a.skipGenericAlias let rootf = f.lastSon.skipGenericAlias if a.kind == tyGenericInst and roota.base == rootf.base: - for i in 1 .. rootf.sonsLen-2: + for i in 1 .. rootf.len-2: let ff = rootf.sons[i] let aa = roota.sons[i] result = typeRel(c, ff, aa) @@ -1667,7 +1667,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, if tfWildcard in a.flags: result = isGeneric elif a.kind == tyTypeDesc: - if f.sonsLen == 0: + if f.len == 0: result = isGeneric else: internalAssert c.c.graph.config, a.len > 0 @@ -1689,7 +1689,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, result = isNone else: # check if 'T' has a constraint as in 'proc p[T: Constraint](x: T)' - if f.sonsLen > 0 and f.sons[0].kind != tyNone: + if f.len > 0 and f.sons[0].kind != tyNone: let oldInheritancePenalty = c.inheritancePenalty result = typeRel(c, f.sons[0], a, flags + {trDontBind}) if doBind and result notin {isNone, isGeneric}: @@ -2523,7 +2523,7 @@ proc matches*(c: PContext, n, nOrig: PNode, m: var TCandidate) = if m.state == csNoMatch: return # check that every formal parameter got a value: var f = 1 - while f < sonsLen(m.callee.n): + while f < len(m.callee.n): var formal = m.callee.n.sons[f].sym if not containsOrIncl(marker, formal.position): if formal.ast == nil: @@ -2562,7 +2562,7 @@ proc matches*(c: PContext, n, nOrig: PNode, m: var TCandidate) = # forget all inferred types if the overload matching failed if m.state == csNoMatch: for t in m.inferredTypes: - if t.sonsLen > 1: t.sons.setLen 1 + if t.len > 1: t.sons.setLen 1 proc argtypeMatches*(c: PContext, f, a: PType, fromHlo = false): bool = var m: TCandidate |