diff options
Diffstat (limited to 'doc/go_spec.html')
-rw-r--r-- | doc/go_spec.html | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/doc/go_spec.html b/doc/go_spec.html index b496e9e48f..b272cb5df6 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ <!--{ "Title": "The Go Programming Language Specification", - "Subtitle": "Version of March 30, 2022", + "Subtitle": "Version of April 19, 2022", "Path": "/ref/spec" }--> @@ -1278,7 +1278,8 @@ then the <code>File</code> interface is implemented by both <code>S1</code> and <p> Every type that is a member of the type set of an interface implements that interface. Any given type may implement several distinct interfaces. -For instance, all types implement the <i>empty interface</i> which stands for the set of all types: +For instance, all types implement the <i>empty interface</i> which stands for the set +of all (non-interface) types: </p> <pre> @@ -1380,7 +1381,7 @@ definition of an interface's type set as follows: of its interface elements. </li> - <li>The type set of a method specification is the set of types + <li>The type set of a method specification is the set of all non-interface types whose method sets include that method. </li> @@ -1389,7 +1390,7 @@ definition of an interface's type set as follows: </li> <li>The type set of a term of the form <code>~T</code> - is the set of types whose underlying type is <code>T</code>. + is the set of all types whose underlying type is <code>T</code>. </li> <li>The type set of a <i>union</i> of terms @@ -1399,6 +1400,15 @@ definition of an interface's type set as follows: </ul> <p> +The quantification "the set of all non-interface types" refers not just to all (non-interface) +types declared in the program at hand, but all possible types in all possible programs, and +hence is infinite. +Similarly, given the set of all non-interface types that implement a particular method, the +intersection of the method sets of those types will contain exactly that method, even if all +types in the program at hand always pair that method with another method. +</p> + +<p> By construction, an interface's type set never contains an interface type. </p> |