1use super::*;
2
3#[derive(Debug, PartialEq)]
4pub enum CompileErrorKind<'src> {
5 AttributeArgumentCountMismatch {
6 attribute: &'src str,
7 found: usize,
8 min: usize,
9 max: usize,
10 },
11 BacktickShebang,
12 CircularRecipeDependency {
13 recipe: &'src str,
14 circle: Vec<&'src str>,
15 },
16 CircularVariableDependency {
17 variable: &'src str,
18 circle: Vec<&'src str>,
19 },
20 DependencyArgumentCountMismatch {
21 dependency: &'src str,
22 found: usize,
23 min: usize,
24 max: usize,
25 },
26 Redefinition {
27 first: usize,
28 first_type: &'static str,
29 name: &'src str,
30 second_type: &'static str,
31 },
32 DuplicateAttribute {
33 attribute: &'src str,
34 first: usize,
35 },
36 DuplicateParameter {
37 recipe: &'src str,
38 parameter: &'src str,
39 },
40 DuplicateSet {
41 setting: &'src str,
42 first: usize,
43 },
44 DuplicateVariable {
45 variable: &'src str,
46 },
47 DuplicateUnexport {
48 variable: &'src str,
49 },
50 ExpectedKeyword {
51 expected: Vec<Keyword>,
52 found: Token<'src>,
53 },
54 ExportUnexported {
55 variable: &'src str,
56 },
57 ExtraLeadingWhitespace,
58 ExtraneousAttributes {
59 count: usize,
60 },
61 FunctionArgumentCountMismatch {
62 function: &'src str,
63 found: usize,
64 expected: RangeInclusive<usize>,
65 },
66 Include,
67 InconsistentLeadingWhitespace {
68 expected: &'src str,
69 found: &'src str,
70 },
71 Internal {
72 message: String,
73 },
74 InvalidAttribute {
75 item_kind: &'static str,
76 item_name: &'src str,
77 attribute: Attribute<'src>,
78 },
79 InvalidEscapeSequence {
80 character: char,
81 },
82 MismatchedClosingDelimiter {
83 close: Delimiter,
84 open: Delimiter,
85 open_line: usize,
86 },
87 MixedLeadingWhitespace {
88 whitespace: &'src str,
89 },
90 ParameterFollowsVariadicParameter {
91 parameter: &'src str,
92 },
93 ParsingRecursionDepthExceeded,
94 RequiredParameterFollowsDefaultParameter {
95 parameter: &'src str,
96 },
97 ShebangAndScriptAttribute {
98 recipe: &'src str,
99 },
100 ShellExpansion {
101 err: shellexpand::LookupError<env::VarError>,
102 },
103 UndefinedVariable {
104 variable: &'src str,
105 },
106 UnexpectedCharacter {
107 expected: char,
108 },
109 UnexpectedClosingDelimiter {
110 close: Delimiter,
111 },
112 UnexpectedEndOfToken {
113 expected: char,
114 },
115 UnexpectedToken {
116 expected: Vec<TokenKind>,
117 found: TokenKind,
118 },
119 UnicodeEscapeCharacter {
120 character: char,
121 },
122 UnicodeEscapeDelimiter {
123 character: char,
124 },
125 UnicodeEscapeEmpty,
126 UnicodeEscapeLength {
127 hex: String,
128 },
129 UnicodeEscapeRange {
130 hex: String,
131 },
132 UnicodeEscapeUnterminated,
133 UnknownAliasTarget {
134 alias: &'src str,
135 target: &'src str,
136 },
137 UnknownAttribute {
138 attribute: &'src str,
139 },
140 UnknownDependency {
141 recipe: &'src str,
142 unknown: &'src str,
143 },
144 UnknownFunction {
145 function: &'src str,
146 },
147 UnknownSetting {
148 setting: &'src str,
149 },
150 UnknownStartOfToken,
151 UnpairedCarriageReturn,
152 UnterminatedBacktick,
153 UnterminatedInterpolation,
154 UnterminatedString,
155}