This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
eiffel:faq:void-safety [2018/01/10 04:52] jonathan |
eiffel:faq:void-safety [2018/05/16 03:31] (current) jonathan |
||
---|---|---|---|
Line 8: | Line 8: | ||
(login with ''anonymous'' and no password). | (login with ''anonymous'' and no password). | ||
- | svn export https://svn.eecs.yorku.ca/repos/sel-open/misc/tutorial/Void-Safety/node | + | ===== Slides and Code===== |
- | | + | |
- | <iframe width="560" height="315" src="https://www.youtube.com/embed/nq3-ZnaLOJs" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe> | + | <code> |
+ | svn export https://svn.eecs.yorku.ca/repos/sel-open/misc/tutorial/Void-Safety/node | ||
+ | </code> | ||
+ | |||
+ | [[https://youtu.be/nq3-ZnaLOJs|Slide Video]] | ||
+ | {{ :eiffel:faq:faq:void-safety.pdf |pdf}} | ||
+ | |||
+ | ===== Formal generic type declarations ===== | ||
+ | |||
+ | |||
+ | *FOO [G] = FOO [G -> detachable separate ANY] - actual generic can be detachable and can be separate. | ||
+ | *FOO [G -> detachable ANY] - actual generic can be detachable, but it is never separate. | ||
+ | *FOO [G -> ANY] = FOO [G -> attached ANY] - actual generic is always attached and is never separate. | ||
+ | *FOO [G -> separate ANY] = FOO [G -> attached separate ANY] - actual generic is always attached and can be separate. | ||
+ | |||
+ | It is also possible to have indirect constraints, e.g. BAR [G -> H, H -> ANY] means that actual generic parameter corresponding to G should be attached and non-separate. | ||