cairo-language-server 2.20.0

The Cairo Language Server
Documentation
use crate::inlay_hints::inlay_hint;
use crate::support::insta::test_transform;

#[test]
fn pattern_with_generics() {
    test_transform!(inlay_hint, r#"
    struct Foo<T> {
        bar: felt252,
        baz: T,
    }

    fn main<C, +Drop<T>>(foo: C) {
        <sel>let Foo { bar, baz: _a } = Foo { bar: 12, baz: foo };</sel>
    }
    "#, @r#"
    struct Foo<T> {
        bar: felt252,
        baz: T,
    }

    fn main<C, +Drop<T>>(foo: C) {
        let Foo { bar<hint>: </hint><hint tooltip="```cairo\nfelt252\n```\n">felt252</hint>, baz: _a<hint>: </hint><hint tooltip="```cairo\nC\n```\n">C</hint> } = Foo { bar: 12, baz: foo };
    }
    "#)
}

#[test]
fn from_inline_macro() {
    test_transform!(inlay_hint, r#"
    fn main() {
        <sel>let _a = array![1234];</sel>
    }
    "#, @r#"
    fn main() {
        let _a<hint>: </hint><hint tooltip="```cairo\nArray<felt252>\n```\n">Array<felt252></hint> = array![1234];
    }
    "#)
}

#[test]
fn simple() {
    test_transform!(inlay_hint, r#"
    fn main() {
        <sel>let _a = 1234;</sel>
    }
    "#, @r#"
    fn main() {
        let _a<hint>: </hint><hint tooltip="```cairo\nfelt252\n```\n">felt252</hint> = 1234;
    }
    "#)
}