diff options
-rwxr-xr-x | compiler/evals.nim | 8 | ||||
-rwxr-xr-x | compiler/nimrod.cfg | 2 | ||||
-rwxr-xr-x | compiler/semcall.nim | 2 | ||||
-rwxr-xr-x | lib/packages/docutils/highlite.nim (renamed from packages/docutils/highlite.nim) | 0 | ||||
-rwxr-xr-x | lib/packages/docutils/rst.nim (renamed from packages/docutils/rst.nim) | 0 | ||||
-rw-r--r-- | lib/packages/docutils/rstast.nim (renamed from packages/docutils/rstast.nim) | 0 | ||||
-rw-r--r-- | lib/packages/docutils/rstgen.nim (renamed from packages/docutils/rstgen.nim) | 0 | ||||
-rwxr-xr-x | lib/system.nim | 4 | ||||
-rwxr-xr-x | lib/system/sysstr.nim | 13 | ||||
-rwxr-xr-x | tests/reject/trecinca.nim | 2 |
10 files changed, 19 insertions, 12 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim index c6e0e947f..d9b03137d 100755 --- a/compiler/evals.nim +++ b/compiler/evals.nim @@ -1495,7 +1495,13 @@ proc myOpen(module: PSym): PPassContext = pushStackFrame(c, newStackFrame()) result = c -proc myProcess(c: PPassContext, n: PNode): PNode = +var oldErrorCount: int + +proc myProcess(c: PPassContext, n: PNode): PNode = + # don't eval errornous code: + if oldErrorCount != msgs.gErrorCounter: + oldErrorCount = msgs.gErrorCounter + return n result = eval(PEvalContext(c), n) const evalPass* = makePass(myOpen, nil, myProcess, myProcess) diff --git a/compiler/nimrod.cfg b/compiler/nimrod.cfg index aa49729b9..a0e59aa09 100755 --- a/compiler/nimrod.cfg +++ b/compiler/nimrod.cfg @@ -6,7 +6,7 @@ hint[XDeclaredButNotUsed]:off path:"llvm" path:"$projectPath/.." -path:"$nimrod/packages/docutils" +path:"$lib/packages/docutils" define:booting diff --git a/compiler/semcall.nim b/compiler/semcall.nim index 67d157261..68c627a39 100755 --- a/compiler/semcall.nim +++ b/compiler/semcall.nim @@ -85,7 +85,7 @@ proc resolveOverloads(c: PContext, n, orig: PNode, #writeMatches(alt) if c.inCompilesContext > 0: # quick error message for performance of 'compiles' built-in: - GlobalError(n.Info, errAmbiguousCallXYZ, "") + GlobalError(n.Info, errGenerated, "ambiguous call") elif gErrorCounter == 0: # don't cascade errors var args = "(" diff --git a/packages/docutils/highlite.nim b/lib/packages/docutils/highlite.nim index 21dd1543a..21dd1543a 100755 --- a/packages/docutils/highlite.nim +++ b/lib/packages/docutils/highlite.nim diff --git a/packages/docutils/rst.nim b/lib/packages/docutils/rst.nim index b22bdf6ce..b22bdf6ce 100755 --- a/packages/docutils/rst.nim +++ b/lib/packages/docutils/rst.nim diff --git a/packages/docutils/rstast.nim b/lib/packages/docutils/rstast.nim index 23233fd39..23233fd39 100644 --- a/packages/docutils/rstast.nim +++ b/lib/packages/docutils/rstast.nim diff --git a/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim index 53bd8188e..53bd8188e 100644 --- a/packages/docutils/rstgen.nim +++ b/lib/packages/docutils/rstgen.nim diff --git a/lib/system.nim b/lib/system.nim index db78d2740..5f9a24ba9 100755 --- a/lib/system.nim +++ b/lib/system.nim @@ -1532,7 +1532,7 @@ iterator fieldPairs*[S: tuple|object, T: tuple|object](x: S, y: T): tuple[ ## The current implementation also has a bug that affects symbol binding ## in the loop body. -proc `==`*[T: tuple|object](x, y: T): bool = +proc `==`*[T: tuple](x, y: T): bool = ## generic ``==`` operator for tuples that is lifted from the components ## of `x` and `y`. for a, b in fields(x, y): @@ -1557,7 +1557,7 @@ proc `<`*[T: tuple](x, y: T): bool = if c > 0: return false return false -proc `$`*[T: tuple|object](x: T): string = +proc `$`*[T: tuple](x: T): string = ## generic ``$`` operator for tuples that is lifted from the components ## of `x`. Example: ## diff --git a/lib/system/sysstr.nim b/lib/system/sysstr.nim index 2e60c6153..d62a987ff 100755 --- a/lib/system/sysstr.nim +++ b/lib/system/sysstr.nim @@ -73,12 +73,13 @@ proc cstrToNimstr(str: CString): NimString {.compilerRtl.} = result = toNimstr(str, c_strlen(str)) proc copyString(src: NimString): NimString {.compilerRtl.} = - if (src.reserved and seqShallowFlag) != 0: - result = src - elif src != nil: - result = rawNewString(src.space) - result.len = src.len - c_memcpy(result.data, src.data, (src.len + 1) * sizeof(Char)) + if src != nil: + if (src.reserved and seqShallowFlag) != 0: + result = src + else: + result = rawNewString(src.space) + result.len = src.len + c_memcpy(result.data, src.data, (src.len + 1) * sizeof(Char)) proc copyStringRC1(src: NimString): NimString {.compilerRtl.} = if src != nil: diff --git a/tests/reject/trecinca.nim b/tests/reject/trecinca.nim index bedea8d7e..73a0ec937 100755 --- a/tests/reject/trecinca.nim +++ b/tests/reject/trecinca.nim @@ -1,7 +1,7 @@ discard """ file: "tests/reject/trecincb.nim" line: 9 - errormsg: "recursive dependency: 'trecincb.nim'" + errormsg: "recursive dependency: 'tests/reject/trecincb.nim'" """ # Test recursive includes |