Add test for tuple bounds

This commit is contained in:
Zanie 2023-07-12 11:24:05 -05:00
parent 76a3245479
commit b06b2662c9
2 changed files with 91 additions and 0 deletions

View file

@ -656,6 +656,16 @@ class Foo[T: str](A, B):
insta::assert_debug_snapshot!(ast::Suite::parse(source, "<test>").unwrap());
}
#[test]
#[cfg(feature = "all-nodes-with-ranges")]
fn test_parse_class_with_generic_type_with_tuple_bound() {
let source = "\
class Foo[T: (str, bytes)](A, B):
pass
";
insta::assert_debug_snapshot!(ast::Suite::parse(source, "<test>").unwrap());
}
#[test]
#[cfg(feature = "all-nodes-with-ranges")]
fn test_parse_class_with_multiple_generic_types() {

View file

@ -0,0 +1,81 @@
---
source: parser/src/parser.rs
expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
---
[
ClassDef(
StmtClassDef {
range: 0..40,
name: Identifier(
"Foo",
),
bases: [
Name(
ExprName {
range: 27..28,
id: Identifier(
"A",
),
ctx: Load,
},
),
Name(
ExprName {
range: 30..31,
id: Identifier(
"B",
),
ctx: Load,
},
),
],
keywords: [],
body: [
Pass(
StmtPass {
range: 36..40,
},
),
],
decorator_list: [],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 10..25,
name: Identifier(
"T",
),
bound: Some(
Tuple(
ExprTuple {
range: 13..25,
elts: [
Name(
ExprName {
range: 14..17,
id: Identifier(
"str",
),
ctx: Load,
},
),
Name(
ExprName {
range: 19..24,
id: Identifier(
"bytes",
),
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
],
},
),
]