From e27cfd93549f6ded57b3f114fd946282ac4be457 Mon Sep 17 00:00:00 2001 From: Arpad Ryszka Date: Sun, 6 Dec 2020 23:37:18 +0100 Subject: [PATCH] pointer based map sorting --- notation.go | 2 +- reflect.go | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/notation.go b/notation.go index 611e7e9..cfef565 100644 --- a/notation.go +++ b/notation.go @@ -24,7 +24,7 @@ const ( skipTypes allTypes randomMaps - pointerValues + _pointerValues // used only internally ) type wrapLen struct { diff --git a/reflect.go b/reflect.go index 0809208..0d1b265 100644 --- a/reflect.go +++ b/reflect.go @@ -144,7 +144,7 @@ func reflectMap(o opts, p *pending, r reflect.Value) node { sn := make(map[string]node) for _, key := range r.MapKeys() { kn := reflectValue(itemOpts, p, key) - knExt := reflectValue(allTypes|pointerValues, p, key) + knExt := reflectValue(itemOpts|_pointerValues, p, key) var b bytes.Buffer wr := writer{w: &b} fprint(&wr, 0, knExt) @@ -180,15 +180,15 @@ func reflectPointer(o opts, p *pending, r reflect.Value) node { } e := reflectValue(o, p, r.Elem()) + if o & _pointerValues != 0 { + e = nodeOf(e, "_", r.Pointer()) + } + if _, t, _ := withType(o); !t { return e } - if o&pointerValues == 0 { - return nodeOf("*", e) - } - - return nodeOf("*(", r.Pointer(), ")", e) + return nodeOf("*", e) } func reflectList(o opts, p *pending, r reflect.Value) node {