Skip to content

Commit 01051f7

Browse files
authored
Merge pull request #9 from Certora/fixed_invariants_and_types
Fixed invariants and types
2 parents 41394f6 + 0518f45 commit 01051f7

File tree

7 files changed

+251
-171
lines changed

7 files changed

+251
-171
lines changed

Cargo.toml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ edition = "2021"
55

66
[dependencies]
77
chumsky = { git = "https://github.com/zesterer/chumsky" }
8-
clap = { version = "3.2.15", features = ["cargo", "derive"] }
8+
clap = { version = "3.2.17", features = ["cargo", "derive"] }
99
color-eyre = "0.6.2"
10-
indoc = "1.0.6"
10+
indoc = "1.0.7"
1111
itertools = "0.10.3"
1212
lsp-types = "0.93.0"
13+
once_cell = "1.13.1"
14+
regex = "1.6.0"
1315
ropey = "1.5.0"
14-
serde = { version = "1.0.140", features = ["derive"] }
15-
serde_json = "1.0.82"
16+
serde = { version = "1.0.143", features = ["derive"] }
17+
serde_json = "1.0.83"
1618
tap = "1.0.1"

src/bin/main.rs

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/lib.rs

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ pub enum AssociatedElement {
4646
name: String,
4747
params: Vec<Param>,
4848
invariant: String,
49-
block: String,
49+
filters: Option<String>,
50+
block: Option<String>,
5051
},
5152
Function {
5253
name: String,
@@ -259,11 +260,11 @@ impl AssociatedElement {
259260
pub fn block(&self) -> Option<&str> {
260261
match self {
261262
AssociatedElement::Rule { block, .. }
262-
| AssociatedElement::Invariant { block, .. }
263263
| AssociatedElement::Function { block, .. }
264264
| AssociatedElement::Methods { block } => Some(block.as_str()),
265265

266-
AssociatedElement::Ghost { block, .. }
266+
AssociatedElement::Invariant { block, .. }
267+
| AssociatedElement::Ghost { block, .. }
267268
| AssociatedElement::GhostMapping { block, .. } => block.as_ref().map(String::as_str),
268269

269270
AssociatedElement::Definition { .. } => None, //TODO: return definition?
@@ -285,4 +286,33 @@ impl AssociatedElement {
285286
_ => None,
286287
}
287288
}
289+
290+
pub fn filters(&self) -> Option<&str> {
291+
match self {
292+
AssociatedElement::Rule { filters, .. }
293+
| AssociatedElement::Invariant { filters, .. } => filters.as_ref().map(String::as_str),
294+
_ => None,
295+
}
296+
}
297+
298+
pub fn invariant(&self) -> Option<&str> {
299+
match self {
300+
AssociatedElement::Invariant { invariant, .. } => Some(invariant.as_str()),
301+
_ => None,
302+
}
303+
}
304+
305+
pub fn mapping(&self) -> Option<&str> {
306+
match self {
307+
AssociatedElement::GhostMapping { mapping, .. } => Some(mapping.as_str()),
308+
_ => None,
309+
}
310+
}
311+
312+
pub fn definition(&self) -> Option<&str> {
313+
match self {
314+
AssociatedElement::Definition { definition, .. } => Some(definition.as_str()),
315+
_ => None,
316+
}
317+
}
288318
}

0 commit comments

Comments
 (0)