[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:
@@ -7,16 +7,16 @@ input_file: crates/ruff_python_parser/resources/valid/statement/while.py
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 0..314,
|
||||
body: [
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 0..16,
|
||||
test: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 6..7,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -25,11 +25,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 13..16,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 13..16,
|
||||
},
|
||||
),
|
||||
@@ -41,21 +41,21 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 18..61,
|
||||
test: BoolOp(
|
||||
ExprBoolOp {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 24..37,
|
||||
op: And,
|
||||
values: [
|
||||
Compare(
|
||||
ExprCompare {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 25..30,
|
||||
left: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 25..26,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -67,7 +67,7 @@ Module(
|
||||
comparators: [
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 29..30,
|
||||
value: Int(
|
||||
1,
|
||||
@@ -79,7 +79,7 @@ Module(
|
||||
),
|
||||
Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 36..37,
|
||||
id: Name("y"),
|
||||
ctx: Load,
|
||||
@@ -91,7 +91,7 @@ Module(
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 43..47,
|
||||
},
|
||||
),
|
||||
@@ -99,11 +99,11 @@ Module(
|
||||
orelse: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 58..61,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 58..61,
|
||||
},
|
||||
),
|
||||
@@ -114,17 +114,17 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 63..152,
|
||||
test: BoolOp(
|
||||
ExprBoolOp {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 69..76,
|
||||
op: And,
|
||||
values: [
|
||||
Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 69..70,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -132,7 +132,7 @@ Module(
|
||||
),
|
||||
Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 75..76,
|
||||
id: Name("y"),
|
||||
ctx: Load,
|
||||
@@ -144,11 +144,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 82..85,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 82..85,
|
||||
},
|
||||
),
|
||||
@@ -156,15 +156,15 @@ Module(
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 90..111,
|
||||
value: Call(
|
||||
ExprCall {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 90..111,
|
||||
func: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 90..95,
|
||||
id: Name("print"),
|
||||
ctx: Load,
|
||||
@@ -172,17 +172,17 @@ Module(
|
||||
),
|
||||
arguments: Arguments {
|
||||
range: 95..111,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
args: [
|
||||
StringLiteral(
|
||||
ExprStringLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 96..110,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 96..110,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
value: "Hello World!",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Single,
|
||||
@@ -205,15 +205,15 @@ Module(
|
||||
orelse: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 123..144,
|
||||
value: Call(
|
||||
ExprCall {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 123..144,
|
||||
func: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 123..128,
|
||||
id: Name("print"),
|
||||
ctx: Load,
|
||||
@@ -221,17 +221,17 @@ Module(
|
||||
),
|
||||
arguments: Arguments {
|
||||
range: 128..144,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
args: [
|
||||
StringLiteral(
|
||||
ExprStringLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 129..143,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 129..143,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
value: "Olá, Mundo!",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Single,
|
||||
@@ -252,11 +252,11 @@ Module(
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 149..152,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 149..152,
|
||||
},
|
||||
),
|
||||
@@ -267,15 +267,15 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 154..171,
|
||||
test: Named(
|
||||
ExprNamed {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 160..166,
|
||||
target: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 160..161,
|
||||
id: Name("a"),
|
||||
ctx: Store,
|
||||
@@ -283,7 +283,7 @@ Module(
|
||||
),
|
||||
value: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 165..166,
|
||||
id: Name("b"),
|
||||
ctx: Load,
|
||||
@@ -294,11 +294,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 168..171,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 168..171,
|
||||
},
|
||||
),
|
||||
@@ -310,21 +310,21 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 172..197,
|
||||
test: BoolOp(
|
||||
ExprBoolOp {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 178..192,
|
||||
op: And,
|
||||
values: [
|
||||
Named(
|
||||
ExprNamed {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 179..185,
|
||||
target: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 179..180,
|
||||
id: Name("a"),
|
||||
ctx: Store,
|
||||
@@ -332,7 +332,7 @@ Module(
|
||||
),
|
||||
value: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 184..185,
|
||||
id: Name("b"),
|
||||
ctx: Load,
|
||||
@@ -342,7 +342,7 @@ Module(
|
||||
),
|
||||
Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 191..192,
|
||||
id: Name("c"),
|
||||
ctx: Load,
|
||||
@@ -354,11 +354,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 194..197,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 194..197,
|
||||
},
|
||||
),
|
||||
@@ -370,30 +370,28 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 198..220,
|
||||
test: Lambda(
|
||||
ExprLambda {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 204..215,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 211..212,
|
||||
node_index: AtomicNodeIndex(
|
||||
0,
|
||||
),
|
||||
node_index: NodeIndex(None),
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 211..212,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
parameter: Parameter {
|
||||
range: 211..212,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
name: Identifier {
|
||||
id: Name("x"),
|
||||
range: 211..212,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
@@ -407,7 +405,7 @@ Module(
|
||||
),
|
||||
body: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 214..215,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -418,11 +416,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 217..220,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 217..220,
|
||||
},
|
||||
),
|
||||
@@ -434,15 +432,15 @@ Module(
|
||||
),
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 221..239,
|
||||
test: Await(
|
||||
ExprAwait {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 227..234,
|
||||
value: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 233..234,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -453,11 +451,11 @@ Module(
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 236..239,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 236..239,
|
||||
},
|
||||
),
|
||||
@@ -469,11 +467,11 @@ Module(
|
||||
),
|
||||
If(
|
||||
StmtIf {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 241..313,
|
||||
test: BooleanLiteral(
|
||||
ExprBooleanLiteral {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 244..248,
|
||||
value: true,
|
||||
},
|
||||
@@ -481,11 +479,11 @@ Module(
|
||||
body: [
|
||||
While(
|
||||
StmtWhile {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 254..298,
|
||||
test: Name(
|
||||
ExprName {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 260..261,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
@@ -494,7 +492,7 @@ Module(
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 271..275,
|
||||
},
|
||||
),
|
||||
@@ -502,7 +500,7 @@ Module(
|
||||
orelse: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 294..298,
|
||||
},
|
||||
),
|
||||
@@ -513,12 +511,12 @@ Module(
|
||||
elif_else_clauses: [
|
||||
ElifElseClause {
|
||||
range: 299..313,
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
test: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
node_index: AtomicNodeIndex(..),
|
||||
node_index: NodeIndex(None),
|
||||
range: 309..313,
|
||||
},
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user