Skip to content

Commit 01dc38a

Browse files
EliteTKnarimiran
authored andcommitted
Fix nimIdentNormalize, fixes #19067 (#19068)
* Make nimIdentNormalize return "" when passed ""; fixes #19067 Fixes #19067 * Add tests for nimIdentNormalize (cherry picked from commit ee703c5)
1 parent b21f81d commit 01dc38a

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/pure/strutils.nim

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,9 @@ func nimIdentNormalize*(s: string): string =
276276
runnableExamples:
277277
doAssert nimIdentNormalize("Foo_bar") == "Foobar"
278278
result = newString(s.len)
279-
if s.len > 0:
280-
result[0] = s[0]
279+
if s.len == 0:
280+
return
281+
result[0] = s[0]
281282
var j = 1
282283
for i in 1..len(s) - 1:
283284
if s[i] in {'A'..'Z'}:

tests/stdlib/tstrutils.nim

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,5 +841,12 @@ bar
841841
doAssert s.endsWith('a') == false
842842
doAssert s.endsWith('\0') == false
843843

844+
block: # nimIdentNormalize
845+
doAssert nimIdentNormalize("") == ""
846+
doAssert nimIdentNormalize("foo") == "foo"
847+
doAssert nimIdentNormalize("foo_bar") == "foobar"
848+
doAssert nimIdentNormalize("Foo_bar") == "Foobar"
849+
doAssert nimIdentNormalize("_Foo_bar") == "_foobar"
850+
844851
static: main()
845852
main()

0 commit comments

Comments
 (0)