| 84 | } |
| 85 | |
| 86 | bool Shape::is_static() const { |
| 87 | if (IsTuple()) { |
| 88 | for (const Shape& subshape : tuple_shapes_) { |
| 89 | if (!subshape.is_static()) { |
| 90 | return false; |
| 91 | } |
| 92 | } |
| 93 | } |
| 94 | return !absl::c_any_of(dynamic_dimensions_, [](bool b) { return b; }); |
| 95 | } |
| 96 | |
| 97 | void Shape::DeleteDimension(int64 dim_to_delete) { |
| 98 | CHECK(IsArray()); |
no outgoing calls