diff options
author | Araq <rumpf_a@web.de> | 2012-08-05 16:05:17 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-08-05 16:05:17 +0200 |
commit | 19bc408ec6554da592a875ed8dc4d07b8838f975 (patch) | |
tree | 5d44efb104e4c9a07934aa7e0e177746fad7fe26 | |
parent | c7158af75273f0f88010b6313748437149f6ac8b (diff) | |
download | Nim-19bc408ec6554da592a875ed8dc4d07b8838f975.tar.gz |
idetools: '--def' now works in 'x.f'
-rwxr-xr-x | compiler/astalgo.nim | 6 | ||||
-rwxr-xr-x | compiler/semcall.nim | 6 | ||||
-rwxr-xr-x | compiler/semexprs.nim | 6 |
3 files changed, 9 insertions, 9 deletions
diff --git a/compiler/astalgo.nim b/compiler/astalgo.nim index 33c31c71d..c40d89d84 100755 --- a/compiler/astalgo.nim +++ b/compiler/astalgo.nim @@ -433,9 +433,9 @@ proc debugTree(n: PNode, indent: int, maxRecDepth: int): PRope = appf(result, ",$N$1\"strVal\": $2", [istr, makeYamlString(n.strVal)]) of nkSym: appf(result, ",$N$1\"sym\": $2_$3", - [istr, symToYaml(n.sym, indent, maxRecDepth), - toRope(n.sym.id)]) - #[istr, toRope(n.sym.name.s), toRope(n.sym.id)]) + [istr, toRope(n.sym.name.s), toRope(n.sym.id)]) + # [istr, symToYaml(n.sym, indent, maxRecDepth), + # toRope(n.sym.id)]) of nkIdent: if n.ident != nil: appf(result, ",$N$1\"ident\": $2", [istr, makeYamlString(n.ident.s)]) diff --git a/compiler/semcall.nim b/compiler/semcall.nim index 5bc4fa29e..eca8d75f0 100755 --- a/compiler/semcall.nim +++ b/compiler/semcall.nim @@ -87,7 +87,7 @@ proc resolveOverloads(c: PContext, n, orig: PNode, proc semResolvedCall(c: PContext, n: PNode, x: TCandidate): PNode = assert x.state == csMatch var finalCallee = x.calleeSym - markUsed(n, finalCallee) + markUsed(n.sons[0], finalCallee) if finalCallee.ast == nil: internalError(n.info, "calleeSym.ast is nil") # XXX: remove this check! if finalCallee.ast.sons[genericParamsPos].kind != nkEmpty: @@ -96,12 +96,12 @@ proc semResolvedCall(c: PContext, n: PNode, x: TCandidate): PNode = finalCallee = generateInstance(c, x.calleeSym, x.bindings, n.info) else: result = x.call - result.sons[0] = newSymNode(finalCallee) + result.sons[0] = newSymNode(finalCallee, result.sons[0].info) result.typ = finalCallee.typ.sons[0] if ContainsGenericType(result.typ): result.typ = errorType(c) return result = x.call - result.sons[0] = newSymNode(finalCallee) + result.sons[0] = newSymNode(finalCallee, result.sons[0].info) result.typ = finalCallee.typ.sons[0] proc semOverloadedCall(c: PContext, n, nOrig: PNode, diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 4e8e80d53..6ace851c3 100755 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -914,9 +914,9 @@ proc semFieldAccess(c: PContext, n: PNode, flags: TExprFlags): PNode = # BUGFIX: do not check for (f.kind in {skProc, skMethod, skIterator}) here # This special node kind is to merge with the call handler in `semExpr`. result = newNodeI(nkDotCall, n.info) - addSon(result, newIdentNode(i, n.info)) + addSon(result, newIdentNode(i, n[1].info)) addSon(result, copyTree(n[0])) - else: + else: if not ContainsOrIncl(c.UnknownIdents, i.id): LocalError(n.Info, errUndeclaredFieldX, i.s) result = errorNode(c, n) @@ -1461,7 +1461,7 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode = if result.typ == nil: result.typ = getSysType(tyChar) of nkDotExpr: result = semFieldAccess(c, n, flags) - if result.kind == nkDotCall: + if result.kind == nkDotCall: result.kind = nkCall result = semExpr(c, result, flags) of nkBind: |