summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xcompiler/evals.nim8
-rwxr-xr-xcompiler/nimrod.cfg2
-rwxr-xr-xcompiler/semcall.nim2
-rwxr-xr-xlib/packages/docutils/highlite.nim (renamed from packages/docutils/highlite.nim)0
-rwxr-xr-xlib/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-xlib/system.nim4
-rwxr-xr-xlib/system/sysstr.nim13
-rwxr-xr-xtests/reject/trecinca.nim2
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