Merged
Conversation
…#548) Change validate_and_read_extra_bpl to accept &[String] instead of &Option<String>, iterating over all paths and concatenating contents. Call sites wrap the current Option<String> into a single-element slice. Once move-compiler updates VerificationAttribute.extra_bpl from Option<String> to Vec<String>, call sites change from: match extra_bpl { Some(s) => std::slice::from_ref(s), None => &[] } to: extra_bpl.as_slice() This supports the extra_bpl=b"a.bpl", extra_bpl=b"b.bpl" syntax once the move-compiler parser accepts duplicate extra_bpl parameters. Co-authored-by: Andrei Stefanescu <andreistefanescu@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Free Tier Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Partial success on error returns incomplete BPL content
- Updated extra_bpl loading to collect diagnostics but return None if any file validation/read error occurs, preventing partial BPL content from being used.
Or push these changes by commenting:
@cursor push f3cb350510
Preview (f3cb350510)
diff --git a/crates/move-stackless-bytecode/src/package_targets.rs b/crates/move-stackless-bytecode/src/package_targets.rs
--- a/crates/move-stackless-bytecode/src/package_targets.rs
+++ b/crates/move-stackless-bytecode/src/package_targets.rs
@@ -764,6 +764,7 @@
extra_bpl: &Vec<String>,
) -> Option<String> {
let mut contents = Vec::new();
+ let mut has_errors = false;
for path_str in extra_bpl {
let extra_path = Path::new(path_str);
@@ -773,6 +774,7 @@
loc,
&format!("extra_bpl path must have .bpl extension: '{}'", path_str),
);
+ has_errors = true;
continue;
}
@@ -795,6 +797,7 @@
resolved_path.display()
),
);
+ has_errors = true;
continue;
}
@@ -810,10 +813,11 @@
err
),
);
+ has_errors = true;
}
}
}
- if contents.is_empty() {
+ if has_errors || contents.is_empty() {
None
} else {
Some(contents.join("\n"))This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Related: #548
Note
Medium Risk
Changes how the prover ingests
extra_bplby allowing multiple files and altering error handling (now continues on invalid paths), plus a broad dependency lockfile update that could affect build/runtime behavior.Overview
Adds support for specifying multiple
extra_bplattributes on specs/modules by changingvalidate_and_read_extra_bplto accept a list of paths, read all valid.bplfiles, and concatenate their contents (instead of a single optional file).Adds integration test cases and snapshots covering both module-level and function-level multi-
extra_bplusage, and updatesCargo.lockwith a broad set of dependency bumps (includingtokio,rustls,clap, etc.) and new transitive crates.Written by Cursor Bugbot for commit 2132e5c. This will update automatically on new commits. Configure here.