summaryrefslogtreecommitdiffstats
path: root/tests/ui-fulldeps/fluent-messages/test.rs
blob: 4e8147e2b76dce047fe95189e079aab739ee0ed2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// normalize-stderr-test "note.*" -> "note: os-specific message"

#![feature(rustc_private)]
#![crate_type = "lib"]

extern crate rustc_macros;
use rustc_macros::fluent_messages;

/// Copy of the relevant `DiagnosticMessage` variant constructed by `fluent_messages` as it
/// expects `crate::DiagnosticMessage` to exist.
pub enum DiagnosticMessage {
    FluentIdentifier(std::borrow::Cow<'static, str>, Option<std::borrow::Cow<'static, str>>),
}

/// Copy of the relevant `SubdiagnosticMessage` variant constructed by `fluent_messages` as it
/// expects `crate::SubdiagnosticMessage` to exist.
pub enum SubdiagnosticMessage {
    FluentAttr(std::borrow::Cow<'static, str>),
}

mod missing_absolute {
    use super::fluent_messages;

    fluent_messages! {
        missing_absolute => "/definitely_does_not_exist.ftl",
//~^ ERROR could not open Fluent resource
    }
}

mod missing_relative {
    use super::fluent_messages;

    fluent_messages! {
        missing_relative => "../definitely_does_not_exist.ftl",
//~^ ERROR could not open Fluent resource
    }
}

mod missing_message {
    use super::fluent_messages;

    fluent_messages! {
        missing_message => "./missing-message.ftl",
//~^ ERROR could not parse Fluent resource
    }
}

mod duplicate {
    use super::fluent_messages;

    fluent_messages! {
//~^ ERROR the name `a_b_key` is defined multiple times
        a => "./duplicate-a.ftl",
        a_b => "./duplicate-a-b.ftl",
//~^ ERROR overrides existing message: `a_b_key`
    }
}

mod slug_with_hyphens {
    use super::fluent_messages;

    fluent_messages! {
        slug_with_hyphens => "./slug-with-hyphens.ftl",
//~^ ERROR name `slug_with_hyphens_this-slug-has-hyphens` contains a '-' character
    }
}

mod label_with_hyphens {
    use super::fluent_messages;

    fluent_messages! {
        label_with_hyphens => "./label-with-hyphens.ftl",
//~^ ERROR attribute `label-has-hyphens` contains a '-' character
    }
}

mod valid {
    use super::fluent_messages;

    fluent_messages! {
        valid => "./valid.ftl",
    }

    use self::fluent_generated::{DEFAULT_LOCALE_RESOURCES, valid_key};
}

mod missing_crate_name {
    use super::fluent_messages;

    fluent_messages! {
        test_crate => "./missing-crate-name.ftl",
//~^ ERROR name `test-crate_foo` contains a '-' character
//~| ERROR name `with-hyphens` contains a '-' character
//~| ERROR name `with-hyphens` does not start with the crate name
    }

    use self::fluent_generated::{DEFAULT_LOCALE_RESOURCES, test_crate_foo, with_hyphens};
}