| Code-Review | +1 |
is_deeply_immutable_(is_deeply_immutable) {Given two asserts below consider removing this parameter altogether and just do:
```
is_deeply_immutable_(is_canonical_ || Object::ShouldHaveDeeplyImmutabilityBitSet(cid))
```
TypeParametersDeserializationCluster(bool is_canonical,There is assert below which says it is never canonical? So this is always false.
ASSERT(is_deeply_immutable);If you have an assert like this then pass constant `true` instead of the `is_deeply_immutable` variable to the constructor below and fold constant value into the constructor itself (if it is only invoked with one value.
case kFunctionTypeCid:I would imagine that these types are also deeply immutable? Should there be an assert? (Same for types below). If yes - please fold the constant into the constructor itself as described in the comment above.
ASSERT(is_deeply_immutable);Same comment as above. Fold constants into constructors everywhere - where appropriate.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
is_deeply_immutable_(is_deeply_immutable) {Given two asserts below consider removing this parameter altogether and just do:
```
is_deeply_immutable_(is_canonical_ || Object::ShouldHaveDeeplyImmutabilityBitSet(cid))
```
Somehow in my mind by having explicit parameter and separate ASSERT I wanted to emphasize that here we consume `is_canonical` and `is_deeply_immutable` properties that were calculated at previous stages, only having an ASSERT to confirm assumptions that we generally have about these attributes.
Specifically I wanted to avoid use of `Object::ShouldHaveDeeplyImmutabilityBitSet` here which to me feels like leaking of implementation details if `is_deeply_immutable` proprety calculation.
TypeParametersDeserializationCluster(bool is_canonical,There is assert below which says it is never canonical? So this is always false.
Like above and below my intent with explicit parameter passing was to highlight the fact that code here doesn't calculate those `is_canonical`, `is_deeply_immutable` attributes, only consumes them.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +1 |
Alexander AprelevGiven two asserts below consider removing this parameter altogether and just do:
```
is_deeply_immutable_(is_canonical_ || Object::ShouldHaveDeeplyImmutabilityBitSet(cid))
```
Somehow in my mind by having explicit parameter and separate ASSERT I wanted to emphasize that here we consume `is_canonical` and `is_deeply_immutable` properties that were calculated at previous stages, only having an ASSERT to confirm assumptions that we generally have about these attributes.
Specifically I wanted to avoid use of `Object::ShouldHaveDeeplyImmutabilityBitSet` here which to me feels like leaking of implementation details if `is_deeply_immutable` proprety calculation.
Done
TypeParametersDeserializationCluster(bool is_canonical,Alexander AprelevThere is assert below which says it is never canonical? So this is always false.
Like above and below my intent with explicit parameter passing was to highlight the fact that code here doesn't calculate those `is_canonical`, `is_deeply_immutable` attributes, only consumes them.
Also, this is plural TypeParameters, and assert is about singular TypeParameter.
If you have an assert like this then pass constant `true` instead of the `is_deeply_immutable` variable to the constructor below and fold constant value into the constructor itself (if it is only invoked with one value.
Done
I would imagine that these types are also deeply immutable? Should there be an assert? (Same for types below). If yes - please fold the constant into the constructor itself as described in the comment above.
Done
ASSERT(is_deeply_immutable);Same comment as above. Fold constants into constructors everywhere - where appropriate.
Which constant do you refer to in here?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
ASSERT(is_deeply_immutable);Alexander AprelevSame comment as above. Fold constants into constructors everywhere - where appropriate.
Which constant do you refer to in here?
This one was wrong comment. I thought we had MintDeserializationCluster was taking is_deeply_immutable, but I see it is already folded in.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[vm/immutable] Ensure that canonical instances are deeply-immutable.
Fix snapshot serializer/deserializer to take care of deep-immutability proprety.
BUG=https://github.com/dart-lang/sdk/issues/62404
TEST=ci
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |