go/types: updated NOTES

Change-Id: I65cbbb3aaeb1c364932b7e9ee8bdc7635ac41160
This commit is contained in:
Robert Griesemer 2019-12-17 16:49:56 -08:00
parent 960e15c183
commit 609756301c
1 changed files with 2 additions and 1 deletions

View File

@ -3,13 +3,14 @@ TODO
- implement contract embedding
- interface embedding doesn't take care of literal type constraints yet
(need an allTypes list, like we have an allMethods list?)
- type assertions on/against parameterized types
OPEN ISSUES
- using a contract and enumerating type arguments currently leads to an error (e.g. func f(type T C(T)) (x T) ... )
- contracts slip through in places where only types are permitted
- parameterized interface methods (of type bounds) need to be customized (subst) for context
DESIGN DECISIONS
DESIGN/IMPLEMENTATION DECISIONS
- 12/4/2019: do not allow parenthesized generic uninstantiated types (unless instantiated implicitly)
In other words: generic types must always be instantiated before they can be used in any form
More generally: Only permit type instantiation T(x) in type context, when the type is a named type.