[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,24 +7,24 @@ input_file: crates/ruff_python_parser/resources/valid/expressions/subscript.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..266,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..10,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..10,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..7,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..4,
id: Name("data"),
ctx: Load,
@ -32,7 +32,7 @@ Module(
),
slice: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 5..6,
value: Int(
0,
@ -44,7 +44,7 @@ Module(
),
slice: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 8..9,
value: Int(
0,
@ -58,15 +58,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 11..21,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 11..21,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 11..15,
id: Name("data"),
ctx: Load,
@ -74,12 +74,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 16..20,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 16..17,
value: Int(
0,
@ -88,7 +88,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 19..20,
value: Int(
1,
@ -107,15 +107,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 22..31,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 22..31,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 22..26,
id: Name("data"),
ctx: Load,
@ -123,17 +123,17 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 27..30,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 27..29,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 27..28,
value: Int(
0,
@ -157,15 +157,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 32..43,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 32..43,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 32..36,
id: Name("data"),
ctx: Load,
@ -173,17 +173,17 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 37..42,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 37..39,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 37..38,
value: Int(
0,
@ -197,7 +197,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 41..42,
value: Int(
1,
@ -216,15 +216,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 44..56,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 44..56,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 44..48,
id: Name("data"),
ctx: Load,
@ -232,17 +232,17 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 49..55,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 49..52,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 49..50,
value: Int(
0,
@ -253,7 +253,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 51..52,
value: Int(
1,
@ -266,7 +266,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 54..55,
value: Int(
2,
@ -285,15 +285,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 57..80,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 57..80,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 57..61,
id: Name("data"),
ctx: Load,
@ -301,17 +301,17 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 62..79,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 62..67,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 62..63,
value: Int(
0,
@ -322,7 +322,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 64..65,
value: Int(
1,
@ -333,7 +333,7 @@ Module(
step: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 66..67,
value: Int(
2,
@ -345,7 +345,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 69..70,
value: Int(
3,
@ -354,12 +354,12 @@ Module(
),
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 72..79,
lower: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 72..73,
id: Name("a"),
ctx: Load,
@ -369,11 +369,11 @@ Module(
upper: Some(
BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 74..79,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 74..75,
id: Name("b"),
ctx: Load,
@ -382,7 +382,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 78..79,
value: Int(
1,
@ -407,15 +407,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 81..93,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 81..93,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 81..85,
id: Name("data"),
ctx: Load,
@ -423,11 +423,11 @@ Module(
),
slice: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 86..92,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 86..87,
id: Name("a"),
ctx: Store,
@ -435,7 +435,7 @@ Module(
),
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 91..92,
id: Name("b"),
ctx: Load,
@ -450,15 +450,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 94..106,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 94..106,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 94..98,
id: Name("data"),
ctx: Load,
@ -466,12 +466,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 99..105,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 99..100,
lower: None,
upper: None,
@ -480,13 +480,13 @@ Module(
),
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 102..105,
lower: None,
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 103..105,
value: Int(
11,
@ -509,15 +509,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 107..120,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 107..120,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 107..111,
id: Name("data"),
ctx: Load,
@ -525,12 +525,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 112..119,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 112..113,
value: Int(
1,
@ -539,7 +539,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 115..116,
value: Int(
2,
@ -548,7 +548,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 118..119,
value: Int(
3,
@ -567,15 +567,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 121..132,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 121..132,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 121..125,
id: Name("data"),
ctx: Load,
@ -583,12 +583,12 @@ Module(
),
slice: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 126..131,
op: Invert,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 127..131,
id: Name("flag"),
ctx: Load,
@ -603,15 +603,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 133..148,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 133..148,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 133..137,
id: Name("data"),
ctx: Load,
@ -619,16 +619,16 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 138..147,
lower: Some(
Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 139..145,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 139..140,
id: Name("a"),
ctx: Store,
@ -636,7 +636,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 144..145,
value: Int(
0,
@ -657,15 +657,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 149..165,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 149..165,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 149..153,
id: Name("data"),
ctx: Load,
@ -673,16 +673,16 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 154..164,
lower: Some(
Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 155..161,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 155..156,
id: Name("a"),
ctx: Store,
@ -690,7 +690,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 160..161,
value: Int(
0,
@ -703,7 +703,7 @@ Module(
upper: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 163..164,
id: Name("y"),
ctx: Load,
@ -720,15 +720,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 226..234,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 226..234,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 226..230,
id: Name("data"),
ctx: Load,
@ -736,16 +736,16 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 231..233,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 231..233,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 232..233,
id: Name("x"),
ctx: Load,
@ -766,15 +766,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 235..249,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 235..249,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 235..239,
id: Name("data"),
ctx: Load,
@ -782,22 +782,22 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 240..248,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 240..248,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 241..248,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 241..242,
id: Name("x"),
ctx: Load,
@ -805,7 +805,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 247..248,
id: Name("y"),
ctx: Load,
@ -829,15 +829,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 250..265,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 250..265,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 250..254,
id: Name("data"),
ctx: Load,
@ -845,20 +845,20 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 255..264,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 255..264,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 257..263,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 257..258,
id: Name("x"),
ctx: Store,
@ -866,7 +866,7 @@ Module(
),
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 262..263,
id: Name("y"),
ctx: Load,