@@ -1950,7 +1950,11 @@ fn type_kind(cx: ctxt, ty: t) -> kind {
1950
1950
// Trait instances are (for now) like shared boxes, basically
1951
1951
ty_trait(_, _, _) => kind_safe_for_default_mode() | kind_owned(),
1952
1952
1953
- // Region pointers are copyable but NOT owned nor sendable
1953
+ // Static region pointers are copyable and sendable, but not owned
1954
+ ty_rptr(re_static, mt) =>
1955
+ kind_safe_for_default_mode() | mutable_type_kind(cx, mt),
1956
+
1957
+ // General region pointers are copyable but NOT owned nor sendable
1954
1958
ty_rptr(_, _) => kind_safe_for_default_mode(),
1955
1959
1956
1960
// Unique boxes and vecs have the kind of their contained type,
@@ -1972,6 +1976,9 @@ fn type_kind(cx: ctxt, ty: t) -> kind {
1972
1976
ty_evec(tm, vstore_box) => {
1973
1977
remove_send(kind_safe_for_default_mode() | mutable_type_kind(cx, tm))
1974
1978
}
1979
+ ty_evec(tm, vstore_slice(re_static)) => {
1980
+ kind_safe_for_default_mode() | mutable_type_kind(cx, tm)
1981
+ }
1975
1982
ty_evec(tm, vstore_slice(_)) => {
1976
1983
remove_owned_send(kind_safe_for_default_mode() |
1977
1984
mutable_type_kind(cx, tm))
@@ -1984,6 +1991,9 @@ fn type_kind(cx: ctxt, ty: t) -> kind {
1984
1991
ty_estr(vstore_box) => {
1985
1992
kind_safe_for_default_mode() | kind_const() | kind_owned()
1986
1993
}
1994
+ ty_estr(vstore_slice(re_static)) => {
1995
+ kind_safe_for_default_mode() | kind_send_copy() | kind_const()
1996
+ }
1987
1997
ty_estr(vstore_slice(_)) => {
1988
1998
kind_safe_for_default_mode() | kind_const()
1989
1999
}
0 commit comments