diff --git a/lib/core/macros.nim b/lib/core/macros.nim index 204123f41..e579d6b30 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -1437,12 +1437,9 @@ when defined(nimVmEqIdent): ## these nodes will be unwrapped. else: - from std/private/strimpl import cmpIgnoreStyleImpl - # this procedure is optimized for native code, it should not be compiled to nimVM bytecode. - proc cmpIgnoreStyle(a, b: cstring): int {.noSideEffect.} = - cmpIgnoreStyleImpl(a, b, true) + from std/private/strimpl import cmpNimIdentifier - proc eqIdent*(a, b: string): bool = cmpIgnoreStyle(a, b) == 0 + proc eqIdent*(a, b: string): bool = cmpNimIdentifier(a, b) == 0 ## Check if two idents are equal. proc eqIdent*(node: NimNode; s: string): bool {.compileTime.} = diff --git a/lib/core/typeinfo.nim b/lib/core/typeinfo.nim index 9b7e32466..b2f5d771f 100644 --- a/lib/core/typeinfo.nim +++ b/lib/core/typeinfo.nim @@ -91,7 +91,7 @@ when not defined(gcDestructors): else: include system/seqs_v2_reimpl -from std/private/strimpl import cmpIgnoreStyleImpl +from std/private/strimpl import cmpNimIdentifier when not defined(js): template rawType(x: Any): PNimType = @@ -368,9 +368,6 @@ iterator fields*(x: Any): tuple[name: string, any: Any] = for name, any in items(ret): yield ($name, any) -proc cmpNimIdentifier(a, b: cstring): int {.noSideEffect.} = - cmpIgnoreStyleImpl(a, b, true) - proc getFieldNode(p: pointer, n: ptr TNimNode, name: cstring): ptr TNimNode = case n.kind diff --git a/lib/std/private/strimpl.nim b/lib/std/private/strimpl.nim index 3fa0dc1d3..7d42a7cf8 100644 --- a/lib/std/private/strimpl.nim +++ b/lib/std/private/strimpl.nim @@ -70,3 +70,7 @@ template endsWithImpl*[T: string | cstring](s, suffix: T) = if s[i+j] != suffix[i]: return false inc(i) if i >= suffixLen: return true + + +func cmpNimIdentifier*[T: string | cstring](a, b: T): int = + cmpIgnoreStyleImpl(a, b, true)