[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,28 +7,28 @@ input_file: crates/ruff_python_parser/resources/valid/statement/simple.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..172,
body: [
Continue(
StmtContinue {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 61..69,
},
),
Break(
StmtBreak {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 70..75,
},
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 77..86,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 80..81,
id: Name("x"),
ctx: Load,
@ -37,11 +37,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 83..86,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 83..86,
},
),
@ -53,11 +53,11 @@ Module(
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 87..100,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 90..94,
value: true,
},
@ -65,7 +65,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 96..100,
},
),
@ -75,11 +75,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 101..102,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 101..102,
value: Int(
1,
@ -90,11 +90,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 104..105,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 104..105,
value: Int(
2,
@ -105,17 +105,17 @@ Module(
),
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 107..111,
},
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 112..113,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 112..113,
value: Int(
1,
@ -126,11 +126,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 115..118,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 115..118,
},
),
@ -138,15 +138,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 120..133,
value: If(
ExprIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 120..133,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 125..126,
id: Name("b"),
ctx: Load,
@ -154,7 +154,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 120..121,
id: Name("a"),
ctx: Load,
@ -162,7 +162,7 @@ Module(
),
orelse: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 132..133,
id: Name("c"),
ctx: Load,
@ -174,11 +174,11 @@ Module(
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 135..157,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 138..139,
id: Name("c"),
ctx: Load,
@ -187,11 +187,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 141..142,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 141..142,
id: Name("B"),
ctx: Load,
@ -201,12 +201,12 @@ Module(
),
Delete(
StmtDelete {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 144..149,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 148..149,
id: Name("A"),
ctx: Del,
@ -219,16 +219,16 @@ Module(
elif_else_clauses: [
ElifElseClause {
range: 150..157,
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
test: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 156..157,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 156..157,
id: Name("C"),
ctx: Load,
@ -243,11 +243,11 @@ Module(
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 158..171,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 161..162,
id: Name("x"),
ctx: Load,
@ -256,16 +256,16 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 164..171,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 164..171,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 170..171,
id: Name("x"),
ctx: Load,