[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/starred.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..172,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..2,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 0..2,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 1..2,
id: Name("a"),
ctx: Load,
@ -33,19 +33,19 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 3..11,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 3..11,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 5..10,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 5..6,
id: Name("a"),
ctx: Load,
@ -54,7 +54,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 9..10,
value: Int(
1,
@ -70,19 +70,19 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 12..19,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 12..19,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 13..19,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 13..14,
id: Name("x"),
ctx: Load,
@ -91,7 +91,7 @@ Module(
attr: Identifier {
id: Name("attr"),
range: 15..19,
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
},
ctx: Load,
},
@ -103,12 +103,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 21..57,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 21..32,
id: Name("array_slice"),
ctx: Store,
@ -117,11 +117,11 @@ Module(
],
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 35..57,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 35..40,
id: Name("array"),
ctx: Load,
@ -129,12 +129,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 41..56,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 41..42,
value: Int(
0,
@ -143,11 +143,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 44..52,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 45..52,
id: Name("indexes"),
ctx: Load,
@ -158,12 +158,12 @@ Module(
),
UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 54..56,
op: USub,
operand: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 55..56,
value: Int(
1,
@ -184,16 +184,16 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 58..94,
targets: [
Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 58..80,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 58..63,
id: Name("array"),
ctx: Load,
@ -201,12 +201,12 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 64..79,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 64..65,
value: Int(
0,
@ -215,11 +215,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 67..75,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 68..75,
id: Name("indexes"),
ctx: Load,
@ -230,12 +230,12 @@ Module(
),
UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 77..79,
op: USub,
operand: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 78..79,
value: Int(
1,
@ -255,7 +255,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 83..94,
id: Name("array_slice"),
ctx: Load,
@ -265,15 +265,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 95..140,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 95..140,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 95..100,
id: Name("array"),
ctx: Load,
@ -281,16 +281,16 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 101..139,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 101..119,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 102..119,
id: Name("indexes_to_select"),
ctx: Load,
@ -301,11 +301,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 121..139,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 122..139,
id: Name("indexes_to_select"),
ctx: Load,
@ -326,15 +326,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 141..171,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 141..171,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 141..146,
id: Name("array"),
ctx: Load,
@ -342,17 +342,17 @@ Module(
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 147..170,
elts: [
Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 147..150,
lower: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 147..148,
value: Int(
3,
@ -363,7 +363,7 @@ Module(
upper: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 149..150,
value: Int(
5,
@ -376,11 +376,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 152..170,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
node_index: NodeIndex(None),
range: 153..170,
id: Name("indexes_to_select"),
ctx: Load,