[ty] Shrink size of AstNodeRef (#20028)

## Summary

Removes the `module_ptr` field from `AstNodeRef` in release mode, and
change `NodeIndex` to a `NonZeroU32` to reduce the size of
`Option<AstNodeRef<_>>` fields.

I believe CI runs in debug mode, so this won't show up in the memory
report, but this reduces memory by ~2% in release mode.
This commit is contained in:
Ibraheem Ahmed 2025-08-22 17:03:22 -04:00 committed by GitHub
parent 886c4e4773
commit 7abc41727b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
648 changed files with 19641 additions and 20364 deletions

View file

@ -7,20 +7,20 @@ input_file: crates/ruff_python_parser/resources/valid/expressions/slice.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..211,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 23..27,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 23..27,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 23..24,
id: Name("x"),
ctx: Load,
@ -28,7 +28,7 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 25..26,
lower: None,
upper: None,
@ -42,15 +42,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 28..33,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 28..33,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 28..29,
id: Name("x"),
ctx: Load,
@ -58,12 +58,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 30..32,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 30..31,
value: Int(
1,
@ -82,15 +82,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 34..39,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 34..39,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 34..35,
id: Name("x"),
ctx: Load,
@ -98,13 +98,13 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 36..38,
lower: None,
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 37..38,
value: Int(
2,
@ -122,15 +122,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 40..46,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 40..46,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 40..41,
id: Name("x"),
ctx: Load,
@ -138,12 +138,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 42..45,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 42..43,
value: Int(
1,
@ -154,7 +154,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 44..45,
value: Int(
2,
@ -172,15 +172,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 47..52,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 47..52,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 47..48,
id: Name("x"),
ctx: Load,
@ -188,7 +188,7 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 49..51,
lower: None,
upper: None,
@ -202,15 +202,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 53..59,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 53..59,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 53..54,
id: Name("x"),
ctx: Load,
@ -218,12 +218,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 55..58,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 55..56,
value: Int(
1,
@ -242,15 +242,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 60..66,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 60..66,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 60..61,
id: Name("x"),
ctx: Load,
@ -258,13 +258,13 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 62..65,
lower: None,
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 63..64,
value: Int(
2,
@ -282,15 +282,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 67..74,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 67..74,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 67..68,
id: Name("x"),
ctx: Load,
@ -298,12 +298,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 69..73,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 69..70,
value: Int(
1,
@ -314,7 +314,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 71..72,
value: Int(
2,
@ -332,15 +332,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 75..81,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 75..81,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 75..76,
id: Name("x"),
ctx: Load,
@ -348,14 +348,14 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 77..80,
lower: None,
upper: None,
step: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 79..80,
value: Int(
3,
@ -372,15 +372,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 82..89,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 82..89,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 82..83,
id: Name("x"),
ctx: Load,
@ -388,12 +388,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 84..88,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 84..85,
value: Int(
1,
@ -405,7 +405,7 @@ Module(
step: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 87..88,
value: Int(
3,
@ -422,15 +422,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 90..97,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 90..97,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 90..91,
id: Name("x"),
ctx: Load,
@ -438,13 +438,13 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 92..96,
lower: None,
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 93..94,
value: Int(
2,
@ -455,7 +455,7 @@ Module(
step: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 95..96,
value: Int(
3,
@ -472,15 +472,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 98..106,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 98..106,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 98..99,
id: Name("x"),
ctx: Load,
@ -488,12 +488,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 100..105,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 100..101,
value: Int(
1,
@ -504,7 +504,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 102..103,
value: Int(
2,
@ -515,7 +515,7 @@ Module(
step: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 104..105,
value: Int(
3,
@ -532,15 +532,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 127..136,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 127..136,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 127..128,
id: Name("x"),
ctx: Load,
@ -548,11 +548,11 @@ Module(
),
slice: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 129..135,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 129..130,
id: Name("y"),
ctx: Store,
@ -560,7 +560,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 134..135,
value: Int(
2,
@ -576,15 +576,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 137..149,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 137..149,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 137..138,
id: Name("x"),
ctx: Load,
@ -592,16 +592,16 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 139..148,
lower: Some(
Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 140..146,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 140..141,
id: Name("y"),
ctx: Store,
@ -609,7 +609,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 145..146,
value: Int(
2,
@ -630,15 +630,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 150..160,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 150..160,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 150..151,
id: Name("x"),
ctx: Load,
@ -646,16 +646,16 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 152..159,
elts: [
Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 152..158,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 152..153,
id: Name("y"),
ctx: Store,
@ -663,7 +663,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 157..158,
value: Int(
2,
@ -684,15 +684,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 202..210,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 202..210,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 202..203,
id: Name("x"),
ctx: Load,
@ -700,12 +700,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 204..209,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 204..205,
value: Int(
1,
@ -714,13 +714,13 @@ Module(
),
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 206..208,
lower: None,
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 207..208,
value: Int(
2,