You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So currently, we use ByRef<T> which works fine for ref/out but in the case that it is in passed, we don't need it to be T but rather const T. While this isn't strictly necessary, it could be nice since it's obvious we can or cannot modify T.
Hopefully, there can be an approach that also does not affect method resolution forcing you to choose between ConstRef and MutRef (coining these names today)
The text was updated successfully, but these errors were encountered:
To add to this, out should ALSO have its own wrapper type, one that disallows modification until it is emplaced with a value (specifically useful for cases when calling orig hooks before or after and to avoid any invalid behavior).
As far as allowing const T in ByRef goes, it MAY simply work as-is, but it might make more sense to make another wrapper type over that as well-- namely, these wrapper types should be ByRef<T> for all intents and purposes, except have overridden behavior as far as assignment and replacement is concerned.
So currently, we use
ByRef<T>
which works fine forref/out
but in the case that it isin
passed, we don't need it to beT
but ratherconst T
. While this isn't strictly necessary, it could be nice since it's obvious we can or cannot modifyT
.Hopefully, there can be an approach that also does not affect method resolution forcing you to choose between
ConstRef
andMutRef
(coining these names today)The text was updated successfully, but these errors were encountered: