[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/named.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..157,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..11,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 1..10,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 1..5,
id: Name("name"),
ctx: Store,
@ -28,7 +28,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 9..10,
value: Int(
0,
@ -41,15 +41,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 12..29,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 13..28,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 13..17,
id: Name("name"),
ctx: Store,
@ -57,11 +57,11 @@ Module(
),
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 22..27,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 22..23,
id: Name("x"),
ctx: Load,
@ -70,7 +70,7 @@ Module(
op: Mult,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 26..27,
id: Name("y"),
ctx: Load,
@ -84,15 +84,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 30..45,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 31..44,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 31..35,
id: Name("name"),
ctx: Store,
@ -100,11 +100,11 @@ Module(
),
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 39..44,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 39..40,
value: Int(
1,
@ -114,7 +114,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 43..44,
value: Int(
1,
@ -129,15 +129,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 46..63,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 47..62,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 47..51,
id: Name("name"),
ctx: Store,
@ -145,16 +145,16 @@ Module(
),
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 55..62,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 56..58,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 57..58,
id: Name("x"),
ctx: Load,
@ -165,7 +165,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 60..61,
id: Name("y"),
ctx: Load,
@ -182,15 +182,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 64..90,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 65..89,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 65..69,
id: Name("name"),
ctx: Store,
@ -198,18 +198,18 @@ Module(
),
value: If(
ExprIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 73..89,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 78..82,
value: true,
},
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 73..74,
id: Name("x"),
ctx: Load,
@ -217,7 +217,7 @@ Module(
),
orelse: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 88..89,
id: Name("y"),
ctx: Load,
@ -231,15 +231,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 91..112,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 92..111,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 92..96,
id: Name("name"),
ctx: Store,
@ -247,26 +247,24 @@ Module(
),
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 100..111,
parameters: Some(
Parameters {
range: 107..108,
node_index: AtomicNodeIndex(
0,
),
node_index: NodeIndex(None),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 107..108,
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
parameter: Parameter {
range: 107..108,
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
name: Identifier {
id: Name("x"),
range: 107..108,
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
},
annotation: None,
},
@ -280,7 +278,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 110..111,
id: Name("x"),
ctx: Load,
@ -294,15 +292,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 113..132,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 114..131,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 114..118,
id: Name("name"),
ctx: Store,
@ -310,12 +308,12 @@ Module(
),
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 123..130,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 129..130,
id: Name("x"),
ctx: Load,
@ -330,15 +328,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 133..157,
value: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 134..156,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 134..138,
id: Name("name"),
ctx: Store,
@ -346,11 +344,11 @@ Module(
),
value: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 143..155,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 154..155,
id: Name("x"),
ctx: Load,