diff --git a/doc/go_spec.html b/doc/go_spec.html index fa6630719b..7c20236016 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ @@ -1980,30 +1980,34 @@ or in unions of such terms.

-More precisely, for a given interface, the set 𝑆 of specific types is defined as follows: +More precisely, for a given interface, the set of specific types corresponds to +the set 𝑅 of representative types of the interface, if 𝑅 is non-empty and finite. +Otherwise, if 𝑅 is empty or infinite, the interface has no specific types. +

+ +

+For a given interface, type element or type term, the set 𝑅 of representative types is defined as follows:

-If 𝑆 is empty, the interface has no specific types. An interface may have specific types even if its type set is empty.

@@ -2021,8 +2025,10 @@ interface{ int } // int interface{ ~string } // string interface{ int|~string } // int, string interface{ Celsius|Kelvin } // Celsius, Kelvin +interface{ float64|any } // no specific types (union is all types) interface{ int; m() } // int (but type set is empty because int has no method m) -interface{ int; any } // int (any has no specific types and is ignored) +interface{ ~int; m() } // int (but type set is infinite because many integer types have a method m) +interface{ int; any } // int interface{ int; string } // no specific types (intersection is empty)