mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-15 15:44:14 +00:00
make tests green again
This commit is contained in:
@@ -161,6 +161,10 @@ proc addTempDecl(c: PContext; n: PNode; kind: TSymKind) =
|
||||
proc semGenericStmt(c: PContext, n: PNode,
|
||||
flags: TSemGenericFlags, ctx: var GenericCtx): PNode =
|
||||
result = n
|
||||
|
||||
when defined(nimsuggest):
|
||||
if withinTypeDesc in flags: inc c.inTypeContext
|
||||
|
||||
#if gCmd == cmdIdeTools: suggestStmt(c, n)
|
||||
semIdeForTemplateOrGenericCheck(n, ctx.cursorInBody)
|
||||
|
||||
@@ -458,6 +462,10 @@ proc semGenericStmt(c: PContext, n: PNode,
|
||||
for i in countup(0, sonsLen(n) - 1):
|
||||
result.sons[i] = semGenericStmt(c, n.sons[i], flags, ctx)
|
||||
|
||||
when defined(nimsuggest):
|
||||
if withinTypeDesc in flags: dec c.inTypeContext
|
||||
|
||||
|
||||
proc semGenericStmt(c: PContext, n: PNode): PNode =
|
||||
var ctx: GenericCtx
|
||||
ctx.toMixin = initIntset()
|
||||
|
||||
@@ -289,7 +289,11 @@ proc semTemplSomeDecl(c: var TemplCtx, n: PNode, symKind: TSymKind; start=0) =
|
||||
if (a.kind != nkIdentDefs) and (a.kind != nkVarTuple): illFormedAst(a)
|
||||
checkMinSonsLen(a, 3)
|
||||
var L = sonsLen(a)
|
||||
when defined(nimsuggest):
|
||||
inc c.c.inTypeContext
|
||||
a.sons[L-2] = semTemplBody(c, a.sons[L-2])
|
||||
when defined(nimsuggest):
|
||||
dec c.c.inTypeContext
|
||||
a.sons[L-1] = semTemplBody(c, a.sons[L-1])
|
||||
for j in countup(0, L-3):
|
||||
addLocalDecl(c, a.sons[j], symKind)
|
||||
|
||||
@@ -161,6 +161,8 @@ proc filterSym(s: PSym; prefix: PNode): bool {.inline.} =
|
||||
if n.len > 0:
|
||||
result = prefixMatch(s, n[0])
|
||||
else: discard
|
||||
if result:
|
||||
echo "indeed a prefix match ", n
|
||||
if s.kind != skModule:
|
||||
result = prefix.isNil or prefixMatch(s, prefix)
|
||||
|
||||
@@ -471,7 +473,10 @@ proc suggestExpr*(c: PContext, node: PNode) =
|
||||
if n == nil: n = node
|
||||
if n.kind == nkDotExpr:
|
||||
var obj = safeSemExpr(c, n.sons[0])
|
||||
let prefix = if n.len == 2: n[1] else: nil
|
||||
# it can happen that errnously we have collected the fieldname
|
||||
# of the next line, so we check the 'field' is actually on the same
|
||||
# line as the object to prevent this from happening:
|
||||
let prefix = if n.len == 2 and n[1].info.line == n[0].info.line: n[1] else: nil
|
||||
suggestFieldAccess(c, obj, prefix, outputs)
|
||||
|
||||
#if optIdeDebug in gGlobalOptions:
|
||||
|
||||
@@ -212,8 +212,8 @@ proc doReport(filename, answer, resp: string; report: var string) =
|
||||
var hasDiff = false
|
||||
for i in 0..min(resp.len-1, answer.len-1):
|
||||
if resp[i] != answer[i]:
|
||||
report.add "\n Expected: " & resp.substr(i)
|
||||
report.add "\n But got: " & answer.substr(i)
|
||||
report.add "\n Expected: " & resp.substr(i, i+200)
|
||||
report.add "\n But got: " & answer.substr(i, i+200)
|
||||
hasDiff = true
|
||||
break
|
||||
if not hasDiff:
|
||||
@@ -233,15 +233,17 @@ proc runEpcTest(filename: string): int =
|
||||
let outp = p.outputStream
|
||||
let inp = p.inputStream
|
||||
var report = ""
|
||||
#var a = newStringOfCap(120)
|
||||
try:
|
||||
# read the port number:
|
||||
#discard outp.readLine(a)
|
||||
var i = 0
|
||||
while not osproc.hasData(p) and i < 100:
|
||||
os.sleep(50)
|
||||
inc i
|
||||
let a = outp.readAll().strip()
|
||||
when defined(posix):
|
||||
var a = newStringOfCap(120)
|
||||
discard outp.readLine(a)
|
||||
else:
|
||||
var i = 0
|
||||
while not osproc.hasData(p) and i < 100:
|
||||
os.sleep(50)
|
||||
inc i
|
||||
let a = outp.readAll().strip()
|
||||
let port = parseInt(a)
|
||||
var socket = newSocket()
|
||||
socket.connect("localhost", Port(port))
|
||||
@@ -298,7 +300,7 @@ proc runTest(filename: string): int =
|
||||
proc main() =
|
||||
var failures = 0
|
||||
when false:
|
||||
let x = getAppDir() / "tests/twithin_macro.nim"
|
||||
let x = getAppDir() / "tests/tdot1.nim"
|
||||
let xx = expandFilename x
|
||||
failures += runEpcTest(xx)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user