You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I am working on the ESDK for Rust and am facing some issues in transpiling Rust from Dafny. There is an Unsupported Error in the implementation_from_dafny.rs generated file. It is from this predicate method in the ESDK Dafny source code:
This is the erroneous transpiled code in implementation_from_dafny.rs:
pub fn IsESDKEncryptionContext(ec: &Map<ValidUTF8Bytes, ValidUTF8Bytes>) -> bool {
set!{r#_<i>Unsupported: DAST_dBinOp_dAnd with not 2 elements</i>.clone(), ec.cardinality() < crate::r#_StandardLibrary_Compile::r#_UInt_Compile::_default::UINT16_LIMIT() && _default::Length(ec) < _default::ESDK_CANONICAL_ENCRYPTION_CONTEXT_MAX_LENGTH(), set!{<i>Unsupported: quantifier with not 2 elements</i>.clone(), {
let mut ec = ec.clone();
Rc::new(move |r#__forall_var_0: &ValidUTF8Bytes| -> bool{
let mut element: ValidUTF8Bytes = r#__forall_var_0.clone();
if {
let i: Sequence<u8> = element.clone();
crate::UTF8::_default::ValidUTF8Seq(&i)
} {
!ec.keys().as_dafny_multiset().merge(&ec.values().as_dafny_multiset()).contains(&element) || crate::r#_StandardLibrary_Compile::r#_UInt_Compile::_default::HasUint16Len::<u8>(&element) && crate::UTF8::_default::ValidUTF8Seq(&element)
} else {
true
}
})
}}, <i>Unsupported: <i>EmitMultiSetBoundedPool</i></i>.clone()}
}
The stacktrace when I run cargo test is as follows. This catches the issue in transpile rust:
Compiling aws-esdk v0.1.0 (<path to the directory redacted>)
error: `_` cannot be a raw identifier
--> src/implementation_from_dafny.rs:86826:12
|
86826 | set!{r#_<i>Unsupported: DAST_dBinOp_dAnd with not 2 elements</i>.clone(), ec.cardinality() < crate::r#_StandardLibrary_Compile::r...
| ^^^
error: comparison operators cannot be chained
--> src/implementation_from_dafny.rs:86826:15
|
86826 | set!{r#_<i>Unsupported: DAST_dBinOp_dAnd with not 2 elements</i>.clone(), ec.cardinality() < crate::r#_StandardLibrary_Compile::r...
| ^ ^
|
::: /Users/rkapila/Documents/projects/esdk-rust/aws-encryption-sdk-dafny/AwsEncryptionSDK/runtimes/rust/dafny_runtime_rust/src/lib.rs:2469:8
|
2469 | ($($x:expr), *) => {
| ------- while parsing argument for this `expr` macro fragment
|
= help: use `::<...>` instead of `<...>` to specify lifetime, type, or const arguments
= help: or use `(...)` if you meant to specify fn arguments
error: could not compile `aws-esdk` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: could not compile `aws-esdk` (lib test) due to 2 previous errors
The text was updated successfully, but these errors were encountered:
Hi,
I am working on the ESDK for Rust and am facing some issues in transpiling Rust from Dafny. There is an
Unsupported Error
in theimplementation_from_dafny.rs
generated file. It is from this predicate method in the ESDK Dafny source code:This is the erroneous transpiled code in
implementation_from_dafny.rs
:The stacktrace when I run
cargo test
is as follows. This catches the issue intranspile rust
:The text was updated successfully, but these errors were encountered: