mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-29 19:17:20 +00:00 
			
		
		
		
	 7abc41727b
			
		
	
	
		7abc41727b
		
			
		
	
	
	
	
		
			
			## 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.
		
			
				
	
	
		
			348 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			348 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| ---
 | |
| source: crates/ruff_python_parser/tests/fixtures.rs
 | |
| input_file: crates/ruff_python_parser/resources/valid/expressions/string.py
 | |
| ---
 | |
| ## AST
 | |
| 
 | |
| ```
 | |
| Module(
 | |
|     ModModule {
 | |
|         node_index: NodeIndex(None),
 | |
|         range: 0..163,
 | |
|         body: [
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 0..13,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 0..13,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Single(
 | |
|                                     StringLiteral {
 | |
|                                         range: 0..13,
 | |
|                                         node_index: NodeIndex(None),
 | |
|                                         value: "Hello World",
 | |
|                                         flags: StringLiteralFlags {
 | |
|                                             quote_style: Single,
 | |
|                                             prefix: Empty,
 | |
|                                             triple_quoted: false,
 | |
|                                         },
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 14..20,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 14..20,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Single(
 | |
|                                     StringLiteral {
 | |
|                                         range: 14..20,
 | |
|                                         node_index: NodeIndex(None),
 | |
|                                         value: "😎",
 | |
|                                         flags: StringLiteralFlags {
 | |
|                                             quote_style: Double,
 | |
|                                             prefix: Empty,
 | |
|                                             triple_quoted: false,
 | |
|                                         },
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 21..32,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 21..32,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Concatenated(
 | |
|                                     ConcatenatedStringLiteral {
 | |
|                                         strings: [
 | |
|                                             StringLiteral {
 | |
|                                                 range: 21..26,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "Foo",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: false,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                             StringLiteral {
 | |
|                                                 range: 27..32,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "Bar",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: false,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                         ],
 | |
|                                         value: "FooBar",
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 33..60,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 39..58,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Concatenated(
 | |
|                                     ConcatenatedStringLiteral {
 | |
|                                         strings: [
 | |
|                                             StringLiteral {
 | |
|                                                 range: 39..42,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "A",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: false,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                             StringLiteral {
 | |
|                                                 range: 47..50,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "B",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: false,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                             StringLiteral {
 | |
|                                                 range: 55..58,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "C",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: false,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                         ],
 | |
|                                         value: "ABC",
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 61..79,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 61..79,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Single(
 | |
|                                     StringLiteral {
 | |
|                                         range: 61..79,
 | |
|                                         node_index: NodeIndex(None),
 | |
|                                         value: "Olá, Mundo!",
 | |
|                                         flags: StringLiteralFlags {
 | |
|                                             quote_style: Single,
 | |
|                                             prefix: Empty,
 | |
|                                             triple_quoted: true,
 | |
|                                         },
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 80..91,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 80..91,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Single(
 | |
|                                     StringLiteral {
 | |
|                                         range: 80..91,
 | |
|                                         node_index: NodeIndex(None),
 | |
|                                         value: "ABCDE",
 | |
|                                         flags: StringLiteralFlags {
 | |
|                                             quote_style: Double,
 | |
|                                             prefix: Empty,
 | |
|                                             triple_quoted: true,
 | |
|                                         },
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 92..121,
 | |
|                     value: StringLiteral(
 | |
|                         ExprStringLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 98..119,
 | |
|                             value: StringLiteralValue {
 | |
|                                 inner: Concatenated(
 | |
|                                     ConcatenatedStringLiteral {
 | |
|                                         strings: [
 | |
|                                             StringLiteral {
 | |
|                                                 range: 98..106,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "aB",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: true,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                             StringLiteral {
 | |
|                                                 range: 111..119,
 | |
|                                                 node_index: NodeIndex(None),
 | |
|                                                 value: "cD",
 | |
|                                                 flags: StringLiteralFlags {
 | |
|                                                     quote_style: Single,
 | |
|                                                     prefix: Empty,
 | |
|                                                     triple_quoted: true,
 | |
|                                                 },
 | |
|                                             },
 | |
|                                         ],
 | |
|                                         value: "aBcD",
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 122..136,
 | |
|                     value: BytesLiteral(
 | |
|                         ExprBytesLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 122..136,
 | |
|                             value: BytesLiteralValue {
 | |
|                                 inner: Single(
 | |
|                                     BytesLiteral {
 | |
|                                         range: 122..136,
 | |
|                                         node_index: NodeIndex(None),
 | |
|                                         value: [
 | |
|                                             104,
 | |
|                                             101,
 | |
|                                             108,
 | |
|                                             108,
 | |
|                                             111,
 | |
|                                             32,
 | |
|                                             119,
 | |
|                                             111,
 | |
|                                             114,
 | |
|                                             108,
 | |
|                                             100,
 | |
|                                         ],
 | |
|                                         flags: BytesLiteralFlags {
 | |
|                                             quote_style: Single,
 | |
|                                             prefix: Regular,
 | |
|                                             triple_quoted: false,
 | |
|                                         },
 | |
|                                     },
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: NodeIndex(None),
 | |
|                     range: 137..161,
 | |
|                     value: BytesLiteral(
 | |
|                         ExprBytesLiteral {
 | |
|                             node_index: NodeIndex(None),
 | |
|                             range: 137..161,
 | |
|                             value: BytesLiteralValue {
 | |
|                                 inner: Concatenated(
 | |
|                                     [
 | |
|                                         BytesLiteral {
 | |
|                                             range: 137..145,
 | |
|                                             node_index: NodeIndex(None),
 | |
|                                             value: [
 | |
|                                                 98,
 | |
|                                                 121,
 | |
|                                                 116,
 | |
|                                                 101,
 | |
|                                                 115,
 | |
|                                             ],
 | |
|                                             flags: BytesLiteralFlags {
 | |
|                                                 quote_style: Single,
 | |
|                                                 prefix: Regular,
 | |
|                                                 triple_quoted: false,
 | |
|                                             },
 | |
|                                         },
 | |
|                                         BytesLiteral {
 | |
|                                             range: 146..161,
 | |
|                                             node_index: NodeIndex(None),
 | |
|                                             value: [
 | |
|                                                 99,
 | |
|                                                 111,
 | |
|                                                 110,
 | |
|                                                 99,
 | |
|                                                 97,
 | |
|                                                 116,
 | |
|                                                 101,
 | |
|                                                 110,
 | |
|                                                 97,
 | |
|                                                 116,
 | |
|                                                 101,
 | |
|                                                 100,
 | |
|                                             ],
 | |
|                                             flags: BytesLiteralFlags {
 | |
|                                                 quote_style: Single,
 | |
|                                                 prefix: Regular,
 | |
|                                                 triple_quoted: false,
 | |
|                                             },
 | |
|                                         },
 | |
|                                     ],
 | |
|                                 ),
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|         ],
 | |
|     },
 | |
| )
 | |
| ```
 |