From b727217229c0d3040db463705545cdb6b1e5769b Mon Sep 17 00:00:00 2001 From: flywind <43030857+xflywind@users.noreply.github.com> Date: Wed, 13 Jan 2021 05:29:30 -0600 Subject: [PATCH] refactor cmpNimIdentifier (#16611) * refactor cmpNimIdentifier * Apply suggestions from code review Co-authored-by: Clyybber Co-authored-by: Clyybber --- lib/core/macros.nim | 7 ++----- lib/core/typeinfo.nim | 5 +---- lib/std/private/strimpl.nim | 4 ++++ 3 files changed, 7 insertions(+), 9 deletions(-) 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)