1
0
mirror of https://github.com/golang/go synced 2024-11-22 18:54:44 -07:00
go/doc
Robert Griesemer f2c7e78592 spec: document operations which accept []byte|string constrained types
Pre-1.18, as special cases, the built-in operations append and copy
accepted strings as second arguments if the first argument was a byte
slice. With Go 1.18, these two built-ins as well as slice expressions
rely on the notion of core types in their specification.

Because we want to permit slice expressions, append, and copy to
operate on (1st or 2nd operands) that are type parameters restricted
by []byte | string (and variations thereof), the simple notion of
core type is not sufficient for these three operations. (The compiler
already permits such more relaxed operations).

In the section on core types, add a paragraph and examples introducing
the (artificial) core type "bypestring", which describes the core type
of type sets whose underlying types are []byte or string. Adjust the
rules for slice expressions, append, and copy accordingly.

Also (unrelated): Adjust prose in the only paragraph where we used
personal speech ("we") to impersonal speech, to match the rest of
the spec.

Fixes #52859.

Change-Id: I1cbda3095a1136fb99334cc3a62a9a349a27ce1e
Reviewed-on: https://go-review.googlesource.com/c/go/+/412234
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
2022-06-21 23:17:35 +00:00
..
asm.html
go1.17_spec.html
go1.19.html doc/go1.19: use correct link to sync/atomic docs 2022-06-21 19:48:04 +00:00
go_mem.html doc: fix typos in Go memory model 2022-06-10 22:10:29 +00:00
go_spec.html spec: document operations which accept []byte|string constrained types 2022-06-21 23:17:35 +00:00