summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorZajcev Evgeny <zevlg@yandex.ru>2016-11-07 13:21:17 +0300
committerZajcev Evgeny <zevlg@yandex.ru>2016-11-07 13:21:17 +0300
commitb1a369d2fbb89112d90e54a34f94d4aae1bd1bc6 (patch)
treeab6a8f778e4791dda611366888992f8161b9ab70
parent8b30506f724186625d8799989e5ee403d158c0b6 (diff)
downloadNim-b1a369d2fbb89112d90e54a34f94d4aae1bd1bc6.tar.gz
[enh] isUpperAscii*, isLowerAscii* speedup execution by stopping
      iteration as soon as possible
-rw-r--r--lib/pure/strutils.nim10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index bfc32bc71..129869373 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -179,9 +179,10 @@ proc isLowerAscii*(s: string): bool {.noSideEffect, procvar,
   if s.len() == 0:
     return false
 
-  result = true
   for c in s:
-    result = c.isLowerAscii() and result
+    if not c.isLowerAscii():
+      return false
+  true
 
 proc isUpperAscii*(s: string): bool {.noSideEffect, procvar,
   rtl, extern: "nsuIsUpperAsciiStr".}=
@@ -193,9 +194,10 @@ proc isUpperAscii*(s: string): bool {.noSideEffect, procvar,
   if s.len() == 0:
     return false
 
-  result = true
   for c in s:
-    result = c.isUpperAscii() and result
+    if not c.isUpperAscii():
+      return false
+  true
 
 proc toLowerAscii*(c: char): char {.noSideEffect, procvar,
   rtl, extern: "nsuToLowerAsciiChar".} =