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
Modify `lib.wiring.connect()` to not pass port members through `Value.cast()`, so that a `ValueCastable`'s `.eq()` will be called, allowing it to perform compatibility checks.
56
+
- If a `ValueCastable` doesn't define `.eq()`, reject the assignment.
57
+
53
58
Modify `lib.data.View.eq(other)` to add the following checks:
54
59
- If `other` is a `ValueCastable`, do `Layout.cast(other.shape())`
55
60
- If a valid `Layout` is returned, reject the assignment if it doesn't match `self.shape()`.
56
61
- If `Layout.cast()` raises, reject the assignment.
57
62
- Otherwise, proceed as normal.
58
63
59
-
Modify `lib.wiring.connect()` to not pass port members through `Value.cast()`, so that a `ValueCastable`'s `.eq()` will be called, allowing it to perform compatibility checks.
60
-
- If a `ValueCastable` doesn't define `.eq()`, reject the assignment.
64
+
Modify `lib.enum.EnumView.eq(other)` to add the following checks:
65
+
- If `other` is an `EnumView`, reject the assignment if enum types are not identical.
66
+
- Otherwise, if `other` is another `ValueCastable`, reject the assignment.
67
+
- Otherwise, proceed as normal.
61
68
62
69
Rejected assignments are a warning in Amaranth 0.6 and becomes a hard error in Amaranth 0.7.
0 commit comments