From 2041bde2b619c8e2cecaa72d986fc1f0d054c615 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 10 Nov 2022 13:50:33 -0800 Subject: [PATCH] spec: clarify struct field and array element comparison order Fixes #8606. Change-Id: I64b13b2ed61ecae4641264deb47c9f7653a80356 Reviewed-on: https://go-review.googlesource.com/c/go/+/449536 Reviewed-by: Matthew Dempsky Reviewed-by: Ian Lance Taylor Reviewed-by: Robert Griesemer Auto-Submit: Robert Griesemer Run-TryBot: Robert Griesemer TryBot-Result: Gopher Robot --- doc/go_spec.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index c188cd4c1f..e55f34aa63 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ @@ -5083,12 +5083,16 @@ These terms and the result of the comparisons are defined as follows:
  • Struct values are comparable if all their fields are comparable. Two struct values are equal if their corresponding - non-blank fields are equal. + non-blank field values are equal. + The fields are compared in source order, and comparison stops as + soon as two field values differ (or all fields have been compared).
  • Array values are comparable if values of the array element type are comparable. - Two array values are equal if their corresponding elements are equal. + Two array values are equal if their corresponding element values are equal. + The elements are compared in ascending index order, and comparison stops + as soon as two element values differ (or all elements have been compared).
  • -- 2.50.0