Avatar
Strict value types can pass/return/hold reference types but strict value types cannot call reference type members/getters/setters/etc. Thus strict value semantics are preserved, and popular generic value types continue to work (collections, Optional, etc).
1:01 AM
struct GeneralRefInValError { var c : C func foo() -> () -> V { // expected-error@+1 {{using reference semantic closure in a context expecting a value semantic closure}} return c.fn } }
1:02 AM
Casually speaking, strict value semantics means that value types “cannot” use reference semantics.
1:02 AM
「値型が参照型を持てない」は間違いだった。 「値型がreference semanticsを使えない」だ。