Skip to content

Commit

Permalink
Update cairo snippets tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mkaput committed Nov 26, 2024
1 parent 8c0a48b commit ad26fd9
Show file tree
Hide file tree
Showing 20 changed files with 543 additions and 3 deletions.
22 changes: 19 additions & 3 deletions test-support/cairo-snippets.gen.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,29 @@ export default [
"#[derive(Copy, Drop)]\nenum bool {\n False: (),\n True: (),\n}\n\n#[empty_attr()]\nmod empty {}\n\n#[derive(Copy, Drop, PartialEq, Serde)]\nstruct u256 {\n low: u128,\n}\n\n#[post('/', data: '<todo_form>')]\nfn string_value() {}\n\n#[cfg(attr(value: C))]\nfn const_value() {}\n\n#[cfg_attr(test, assert_instr(instr: add_a.b))]\nfn custom_name() {}\n\n#[attr(foo::bar, qwe)]\nfn arbitrary_token_tree() {}",
"#[extern]\n#[abc]\nfn missing_id<T> (ref: Ref::<T>) { }",
"#[mod]\nfn foo() {}",
"// Regular comment\n//! Inner documentation comment\n/// Documentation comment\nfn foo() {}",
"// TODO(Gil): handle multiline diagnostics.\n#[bbb]\nmacro",
"/// TODO(Tomerstarkware): parse logical operators with lower precedence than `=`\nfn f() {\n if let Some(x) = 2 && false {\n 3\n }\n}",
";\n#[attr]\nfn foo(var1: int var2: felt252) -> int {\n let bla = 7 + true + 'abc'; // comment\n return bar(bla);\n}\n",
"const X = 0x1234;",
"const X: NonZero::<felt252> = 0x1234;",
"const X: [felt252; 3] = [1, 2, 3];",
"enum MyEnum {\n A(felt252),\n}",
"enum MyEnum {\n A: felt252,\n B: felt252,\n MissingComma\n}",
"enum MyEnum {\n A: felt252,\n B: felt252,\n MissingComma,\n}",
"enum _ {}",
"enum mod {}",
"extern fn _() nopanic;",
"extern fn mod() nopanic;",
"extern type _;",
"extern type mod;",
"fn _() {}",
"fn bar() {}\n// Regular comment\n/// Documentation comment\n//! Inner documentation comment\nfn foo() {}",
"fn bar() {}\n/// Documentation comment\n// Regular comment\n//! Inner documentation comment\nfn foo() {}",
"fn emit<S, +traits::Into<T: S, TEvent>, -traits::Into<S, S>>(ref self: T, event: S) {}",
"fn f() -> bool {\n 3 < 1 > 5\n}",
"fn f() -> u32 {\n -3 * 5\n}",
"fn f() -> u32 {\n -a * 5\n}",
"fn f() {\n for i in 1..x {}\n}",
"fn f() {\n if 0 == if x {1} else {2} {\n }\n}",
"fn f() {\n if 1 == 2 {\n 3\n } else if 4 == 5 {\n 6\n } else if 7 == 8 {\n 9\n } else {\n 10\n }\n}",
"fn f() {\n if MyStruct{a: 0} == MyStruct{a: 1} {\n }\n}",
Expand All @@ -55,7 +60,8 @@ export default [
"fn f() {\n match MyStruct{a: 1} {\n }\n match x {\n 1 => {},\n Struct{a, b: _, .., a: A::Variant(4)} => {},\n x => {},\n bool::False() => {}\n }\n}",
"fn f() {\n while let Some(x) = 2 {\n break 5;\n }\n}",
"fn f() {\n while true {\n 1;\n }\n}",
"fn f() {\n {\n 5\n } + match x {\n E::V1(_) => 4,\n E::V2(_) => 2\n } - if cond {\n 32\n } else {\n 1\n }\n}",
"fn f() {\n x += false && true..1 + 2\n}",
"fn f() {\n {\n 5\n } + match x {\n E::V1(_) => 4,\n E::V2(_) => 2,\n } - if cond {\n 32\n } else {\n 1\n }\n}",
"fn f() {\n {4} - 1 + / 2 + {5}\n}",
'fn f() {\n let unterminated_str = "abc;\n}',
"fn f() {\n let unterminated_str = 'abc;\n}",
Expand All @@ -64,7 +70,7 @@ export default [
"fn f(mod: felt252) {}",
"fn f(ref _: felt252) {}",
"fn f(ref mod: felt252) {}",
"fn f(x: felt252,) {\n let x = 5;\n match x {\n 0 | 1 => 1,\n _ => 2,\n };\n}",
"fn f(x: felt252) {\n let x = 5;\n match x {\n 0 | 1 => 1,\n _ => 2,\n };\n}",
"fn foo (x:T) -> S\n{\n let x = -5 + 3;\n let y : T = x*2 + 3*5; // Comment.\n let z = ;\n let v = bool::True == false;\n 5 + Struct{a: 5, b: Struct2{_gg: ()}};\n return df == 6;\n x + y\n}\n\npub impl A of B {\n fn foo() {\n if bla.\n // The module below should parse correctly, not inside this impl.\n }\n}\n\npub mod my_mod{\n fn bar (x:T0, s: S) -> X {\n x.a *+-. s.s * foo(1,3)\n }\n struct A{\n x: a, // Comment.\n y: int\n }\n\n}\n\nskipped tokens\n",
"fn foo() -> Aaaaa Bbb + Cc {\n}",
"fn foo() -> Aaaaa Bbb + Cc; let x = 0; }",
Expand All @@ -76,13 +82,18 @@ export default [
"fn foo() {\n #[aaa]\n let x = 1;\n #[bbb]\n}",
"fn foo() {\n #[aaa]\n}",
"fn foo() {\n #[an_attribute]\n let x = 1;\n}",
"fn foo() {\n #[attribute]\n type R = u8;\n}",
"fn foo() {\n #[attribute]\n use X::*;\n}",
"fn foo() {\n #[attribute]\n use X::Y;\n}",
"fn foo() {\n #[bbb]\n // A comment\n}",
"fn foo() {\n #[flat]\n const X: felt252 = 3;\n}",
"fn foo() {\n $\n #[aaa]\n}",
"fn foo() {\n // A comment\n #[bbb]\n}",
"fn foo() {\n A { _ }\n}",
"fn foo() {\n A { mod }\n}",
"fn foo() {\n bar::<S: >();\n}",
"fn foo() {\n bar::<S: usize>();\n}",
"fn foo() {\n const X = 3;\n}",
"fn foo() {\n let MyStruct { _ } = 3;\n}",
"fn foo() {\n let MyStruct { mod } = 3;\n}",
'fn foo() {\n let a = "\\u{1024}";\n}',
Expand All @@ -94,6 +105,10 @@ export default [
"fn foo() {\n let ref _ = 3;\n}",
"fn foo() {\n let ref mod = 3;\n}",
"fn foo() {\n let x += 5;\n}",
"fn foo() {\n type R = u8;\n}",
"fn foo() {\n use X::*;\n}",
"fn foo() {\n use X::Y;\n}",
"fn foo() {\n use X::{A, *, B};\n}",
"fn foo() {}\nskipped tokens\nfn bar() {}",
"fn foo(a: Option::<felt252>) {}",
"fn foo(a: Option<felt252>) {}",
Expand Down Expand Up @@ -157,6 +172,7 @@ export default [
"skipped tokens",
"struct A {\n _: felt252\n}",
"struct A {\n a: felt252,\n}\nfn f(x: (A, felt252)) {\n let (A { a: mut a }, ref mut b) = x;\n}",
"struct A {\n member: felt252,\n}\n\nfn foo() {\n const X: felt252 = 3;\n const Y: A = A { member: 3 };\n}",
"struct A {\n mod: felt252\n}",
"struct A<_> {}",
"struct A<mod> {}",
Expand Down
23 changes: 23 additions & 0 deletions test/snapshots/03c478259d.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//! > cairo_code
fn f() {
x += false && true..1 + 2
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
f source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
x source.cairo variable.other.cairo
+= source.cairo keyword.operator.assignment.cairo
false source.cairo constant.language.bool.cairo
&& source.cairo keyword.operator.logical.cairo
true source.cairo constant.language.bool.cairo
.. source.cairo keyword.operator.range.cairo
1 source.cairo constant.numeric.decimal.cairo
+ source.cairo keyword.operator.math.cairo
2 source.cairo constant.numeric.decimal.cairo
} source.cairo punctuation.brackets.curly.cairo
20 changes: 20 additions & 0 deletions test/snapshots/07f81ae322.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//! > cairo_code
fn foo() {
use X::*;
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
use source.cairo meta.use.cairo keyword.other.cairo
␣ source.cairo meta.use.cairo
X source.cairo meta.use.cairo entity.name.namespace.cairo
:: source.cairo meta.use.cairo keyword.operator.namespace.cairo
* source.cairo meta.use.cairo keyword.operator.math.cairo
; source.cairo meta.use.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
23 changes: 23 additions & 0 deletions test/snapshots/1d0fb4cb72.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//! > cairo_code
fn f() -> bool {
3 < 1 > 5
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
f source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
-> source.cairo meta.function.definition.cairo keyword.operator.arrow.skinny.cairo
␣ source.cairo meta.function.definition.cairo
bool source.cairo meta.function.definition.cairo entity.name.type.primitive.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
3 source.cairo constant.numeric.decimal.cairo
< source.cairo keyword.operator.comparison.cairo
1 source.cairo constant.numeric.decimal.cairo
> source.cairo keyword.operator.comparison.cairo
5 source.cairo constant.numeric.decimal.cairo
} source.cairo punctuation.brackets.curly.cairo
25 changes: 25 additions & 0 deletions test/snapshots/216e611c2c.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//! > cairo_code
fn foo() {
#[attribute]
use X::Y;
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
# source.cairo meta.attribute.cairo punctuation.definition.attribute.cairo
[ source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
attribute source.cairo meta.attribute.cairo
] source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
use source.cairo meta.use.cairo keyword.other.cairo
␣ source.cairo meta.use.cairo
X source.cairo meta.use.cairo entity.name.namespace.cairo
:: source.cairo meta.use.cairo keyword.operator.namespace.cairo
Y source.cairo meta.use.cairo entity.name.type.cairo
; source.cairo meta.use.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
25 changes: 25 additions & 0 deletions test/snapshots/46af71b748.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//! > cairo_code
fn foo() {
#[attribute]
use X::*;
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
# source.cairo meta.attribute.cairo punctuation.definition.attribute.cairo
[ source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
attribute source.cairo meta.attribute.cairo
] source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
use source.cairo meta.use.cairo keyword.other.cairo
␣ source.cairo meta.use.cairo
X source.cairo meta.use.cairo entity.name.namespace.cairo
:: source.cairo meta.use.cairo keyword.operator.namespace.cairo
* source.cairo meta.use.cairo keyword.operator.math.cairo
; source.cairo meta.use.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
20 changes: 20 additions & 0 deletions test/snapshots/4857646105.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//! > cairo_code
fn foo() {
use X::Y;
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
use source.cairo meta.use.cairo keyword.other.cairo
␣ source.cairo meta.use.cairo
X source.cairo meta.use.cairo entity.name.namespace.cairo
:: source.cairo meta.use.cairo keyword.operator.namespace.cairo
Y source.cairo meta.use.cairo entity.name.type.cairo
; source.cairo meta.use.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
22 changes: 22 additions & 0 deletions test/snapshots/54b11ce428.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//! > cairo_code
enum MyEnum {
A: felt252,
B: felt252,
MissingComma,
}

//! > syntax
enum source.cairo keyword.declaration.enum.cairo storage.type.cairo
MyEnum source.cairo entity.name.type.enum.cairo
{ source.cairo punctuation.brackets.curly.cairo
A source.cairo entity.name.type.cairo
: source.cairo keyword.operator.key-value.cairo
felt252 source.cairo entity.name.type.numeric.cairo
, source.cairo punctuation.comma.cairo
B source.cairo entity.name.type.cairo
: source.cairo keyword.operator.key-value.cairo
felt252 source.cairo entity.name.type.numeric.cairo
, source.cairo punctuation.comma.cairo
MissingComma source.cairo entity.name.type.cairo
, source.cairo punctuation.comma.cairo
} source.cairo punctuation.brackets.curly.cairo
26 changes: 26 additions & 0 deletions test/snapshots/90a1b3e79b.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//! > cairo_code
fn foo() {
#[flat]
const X: felt252 = 3;
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
# source.cairo meta.attribute.cairo punctuation.definition.attribute.cairo
[ source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
flat source.cairo meta.attribute.cairo
] source.cairo meta.attribute.cairo punctuation.brackets.attribute.cairo
const source.cairo storage.type.cairo
X source.cairo constant.other.caps.cairo
: source.cairo keyword.operator.key-value.cairo
felt252 source.cairo entity.name.type.numeric.cairo
= source.cairo keyword.operator.assignment.equal.cairo
3 source.cairo constant.numeric.decimal.cairo
; source.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
28 changes: 28 additions & 0 deletions test/snapshots/989ce82952.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//! > cairo_code
fn foo() {
use X::{A, *, B};
}

//! > syntax
fn source.cairo meta.function.definition.cairo keyword.other.fn.cairo
␣ source.cairo meta.function.definition.cairo
foo source.cairo meta.function.definition.cairo entity.name.function.cairo
( source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
) source.cairo meta.function.definition.cairo punctuation.brackets.round.cairo
␣ source.cairo meta.function.definition.cairo
{ source.cairo meta.function.definition.cairo punctuation.brackets.curly.cairo
use source.cairo meta.use.cairo keyword.other.cairo
␣ source.cairo meta.use.cairo
X source.cairo meta.use.cairo entity.name.namespace.cairo
:: source.cairo meta.use.cairo keyword.operator.namespace.cairo
{ source.cairo meta.use.cairo punctuation.brackets.curly.cairo
A source.cairo meta.use.cairo entity.name.type.cairo
, source.cairo meta.use.cairo punctuation.comma.cairo
␣ source.cairo meta.use.cairo
* source.cairo meta.use.cairo keyword.operator.math.cairo
, source.cairo meta.use.cairo punctuation.comma.cairo
␣ source.cairo meta.use.cairo
B source.cairo meta.use.cairo entity.name.type.cairo
} source.cairo meta.use.cairo punctuation.brackets.curly.cairo
; source.cairo meta.use.cairo punctuation.semi.cairo
} source.cairo punctuation.brackets.curly.cairo
Loading

0 comments on commit ad26fd9

Please sign in to comment.