-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add #[is_variant] to enable adt.is_Variant() and adt.get_Variant() #38
Conversation
…tly encoded to SMT (is-Variant)
@@ -0,0 +1,25 @@ | |||
use quote::quote; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just moving the derive_structural
proc macro to a separate module. No code changes in this function.
It looks like the is_variant feature goes straight to the underlying VIR/SMT |
…Variant_x() and encode them directly This is sound because a requires like ``` fn foo(m: Maybe<u64>) { requires(m.get_Some_0() == 3); // no facts about whether m.is_Some() or m.is_None() } ``` encoded as ``` (declare-fun req%foo. (Maybe<u64>) Bool) (axiom (forall ((m@ Maybe.)) (! (= (req%foo. m@) (and (axiom_location ("failed precondition") (= (Maybe./Some/_0 m@) 3)) )) :pattern ... ))) ``` is not a useful spec, but is not dangerous, as it is not possible to construct an `m == None` for which the precondition is true.
I've discussed this with @Chris-Hawblitzel offline, and implemented direct field selection, with the scheme described here #41 |
…enums with variants with named fields
182b7c2bb More precise gitignore patterns fc5bf6b40 Release 0.2.29 4e85487ba Merge pull request #103 from dtolnay/macrosemi 1290d70ed Preserve semicolon on braced statement-position macros 78b9b4003 Merge pull request #102 from dtolnay/floatdot 281784a84 Revert "Avoid trailing '.' on non-macro float literals" 99d37c538 Release 0.2.28 2f398b377 Merge pull request #101 from dtolnay/skiprelease e8c63d461 Skip `cargo test --release` on old rustc f191a5ba0 Merge pull request #100 from dtolnay/closurebailout 490d479ee Disregard bailouts inside of closure bodies ee1a762a5 Increase expression depth in test_precedence c56aafcc3 Fix scan_right out of sync with syn d6296ce3b Merge pull request #98 from dtolnay/permutations 78609985e Make permutations test compatible with Rust pre-1.65 0ee28e66b Add precedence permutations test 8ac4fd32e Merge pull request #97 from dtolnay/matcharm 0f7da1218 Print match arm with paren instead of brace if invalid as stmt 24712df07 Simplify match-arm spacing 9c2bb02eb Propagate fixup information inside closure body 465fa06c7 Merge pull request #96 from dtolnay/postbreak 4c613674b Support multi-char post_break 4d65c3ce7 Merge pull request #95 from dtolnay/parseablestmt d6d84246e Fix some parseable_as_stmt edge cases f2117b8a5 Merge pull request #94 from dtolnay/parseablestmt 9ff53194a Convert parseable_as_stmt to non-recursive fda4495f4 Merge pull request #93 from dtolnay/matcharm 2b7442837 Deduplicate match-arm terminator logic f3cba4ad7 Merge pull request #92 from dtolnay/rangerange 7e125a2b9 Separate consecutive ranges with a space 74772cb86 Merge pull request #91 from dtolnay/up 487078d22 Resolve unnecessary_lazy_evaluations clippy lints 65012eca6 Raise required compiler to Rust 1.62 ebefa9de8 Merge pull request #90 from dtolnay/synprecedence 1cfd65ab1 Synchronize precedence implementation from syn 2.0.96 277a63bb8 Ignore bool_to_int_with_if pedantic clippy lint 57258305f Update non_exhaustive_omitted_patterns false positive link 882f0ed68 Release 0.2.27 0ddbeab0e Merge pull request #89 from dtolnay/floatdot 988425d32 Avoid trailing '.' on non-macro float literals 5478bcf19 Release 0.2.26 1dd1aaec1 Merge pull request #88 from dtolnay/precedence 5b476dfa4 Wire up fixups for precedence 3dd7a2351 Fix imported syn code compilation 3ea1499d0 Copy precedence implementation from syn 2.0.95 b359ab075 Look into Group expressions for statement termination 6623df065 Properly space and indent const arguments in blocks 9d24e92a3 Simplify printing of Stmt::Local box ends ba264e3b2 Automatically brace the body in closures with return type d3b30dbdd Improve small block spacing around diverge expressions 8e5ae6779 Factor our expression small block printing 8c7a11cf2 Merge pull request #87 from dtolnay/exprinpath bf0ca9544 Share logic for wrapping const expression in braces in path a947562f5 Rename subexpr -> prefix_subexpr 02584e4f3 Prevent upload-artifact step from causing CI failure 50de5c67a Release 0.2.25 06791ead0 Merge pull request #85 from dtolnay/externsafe db38f770c Print safe and explicitly unsafe foreign items 91ebe48d5 Merge pull request #84 from dtolnay/buildenv 265ab3b51 Use $CARGO_PKG_VERSION from buildscript exec-time instead of build-time c6f081535 Release 0.2.24 4ca0f7623 Merge pull request #83 from dtolnay/precisecapture 3381c6447 Pretty print TypeParamBound::PreciseCapture a1701f793 Release 0.2.23 b4919cf22 Merge pull request #82 from dtolnay/rawaddr eb15c0c14 Pretty print Expr::RawAddr 75e1f4fb4 Ignore ref_option pedantic clippy lint c28d8ea50 Release 0.2.22 dd76fd613 Merge pull request #80 from dtolnay/precisecapture b54cd1266 Pretty-print precise capture syntax (`use<>`) 61bd508ab Upload CI Cargo.lock for reproducing failures ea2044e13 Release 0.2.21 11c45ff3a Merge pull request #79 from dtolnay/tailcall d2881c32e Pretty-print tail calls (`become`) 53aac3023 Merge pull request #78 from dtolnay/rustfmtbug cff71f363 Revert "Work around rustfmt 'rewriting static' bug" 8584223d1 Resolve single_match_else pedantic clippy lint 93f207864 Merge pull request #76 from dtolnay/rustfmtbug 39a3f7501 Work around rustfmt 'rewriting static' bug 060a8adf6 Update rustfmt output to nightly-2024-06-24 8f7bb3afe Raise minimum supported compiler to 1.61 22da86d97 Update unstable rustc_parse code to nightly-2024-06-06 179974cc9 Release 0.2.20 132140492 Merge pull request #73 from dtolnay/checkcfg c24065683 Resolve unexpected_cfgs warning 096eac9c6 Update rustc initialization to nightly-2024-04-17 e0d74e690 Release 0.2.19 8e800f6fd Merge pull request #72 from dtolnay/assign a6aa3903d Fix line placement for field assignment with multiline value 659fde697 Release 0.2.18 fadd0dfa9 Merge pull request #71 from dtolnay/cstr 1ad491d82 Support C-string literal syntax 86ac6a949 Raise required compiler to rust 1.60 cf2ecc110 Fix typo in readme and crate-level documentation 45f047f2a Explicitly install a Rust toolchain for cargo-outdated job 0875d2df6 Release 0.2.17 7f0aef1c7 Merge pull request #70 from dtolnay/selfas a89930441 Preserve braces in 'use path::to::{self as rename}' d8b35956b Revert "Temporarily disable prettyplease-update-examples in CI" c49b5fec0 Temporarily disable prettyplease-update-examples in CI 2b6085fb8 Update test suite to nightly-2024-03-06 d54ac4680 Merge pull request #66 from dtolnay/exhaustive bcbb5fc44 Pick up changes to non_exhaustive_omitted_patterns lint 380c7b8c5 Release 0.2.16 7b9b35074 Pull in proc-macro2 sccache fix 987bea1eb Merge pull request #65 from dtolnay/testmatchguard e5e951130 Add test of parenthesization of struct lit in match guard ae86c8ce7 Merge pull request #64 from dtolnay/grouped acdc42ebf Look into invisible delimiters to determine exterior struct lit b2f30c7f3 Merge pull request #63 from dtolnay/structcond 157544394 Add test of automatic parenthesization of braced structs in cond 11ebfab3c Format with new rustfmt that handles let-else 91033e81b Give a variable name before passing boolean arg 93aa5b31b Resolve get_first clippy lint 1e8e67e83 Test docs.rs documentation build in CI 10b1e419c Release 0.2.15 550c3296a Merge pull request #60 from dtolnay/iflet 8ad4602ea Update cargo-expand products d8f127fbe Improve indentation of if-let and while-let expressions 44f5a4a82 Update actions/checkout@v3 -> v4 823914d11 Release 0.2.14 df04af8b0 Merge pull request #59 from dtolnay/constverbatim 4b8b6ef80 Support generics on const item c3b96858f Parse const item inside verbatim trait item 80b4ef3bb Release 0.2.13 4ec51afc3 Merge pull request #58 from dtolnay/unnamedfields b5aabc5b0 Support unnamed struct/union type syntax 1bd9b57a0 Release 0.2.12 b97e38da5 Opt in to generate-link-to-definition when building on docs.rs 17dc0a9a7 Release 0.2.11 0142ff4f7 Merge pull request #56 from dtolnay/letelse ba428ece9 Improve let-else formatting 7120cbe8d Select a single docs.rs build target 8e9d001a4 Release 0.2.10 73eae68e5 Update deps to a proc-macro2 that works on current nightly f44639ce9 Add CI job using minimal-versions 6f7a9eebd Merge pull request #54 from dtolnay/verbatimattr 596ceaf8d Preserve attributes on verbatim Expr 4a2318ec7 Release 0.2.9 1593a0c0f Recognize ellipsis placeholder in all verbatim nodes 82d41ab2a Release 0.2.8 ad3755e8d Merge pull request #53 from dtolnay/closurebrace 4484fe0bf Prevent brace insertion from changing meaning of expression 046164941 Reduce visibility of requires_terminator 0aa895b7e Release 0.2.7 c32ce5c9a Merge pull request #51 from dtolnay/macros 9b42ba611 Format some standard library macros better f69383aff Release 0.2.6 8c82f67c6 Merge pull request #49 from dtolnay/macrorulessemi f4c9eac76 Fix semicolon on macro_rules written with parentheses 606490c15 Release 0.2.5 587525c3d Merge pull request #47 from dtolnay/builtin 12505bf21 Support builtin# expr syntax ea7c3dde0 Fix new unused_mut detected by nightly-2023-04-30 f23278a76 Update fuzz crate gitignore to ignore coverage dir 9204b588b Release 0.2.4 858ee6041 Fix printing of path generics in trait part of qpath b0e14e3b0 Release 0.2.3 6fd3bc1e0 Turn on verbatim feature when built by Rust playground 68f001b7d Merge pull request #45 from dtolnay/armexpr 083de82f7 Improve formatting of line-wrapped match arms c08cb35f8 Release 0.2.2 801c67e9d Pull in all syn verbatim parsing fixes 330d8923b Fix linkage name for the build script 9925e2929 Support TraitItem::Verbatim containing visibility or defaultness 6d6618fbf Support ImplItem::Verbatim containing const without init bf0d92f59 Rename flexible impl data structure to match the other verbatim types 47ff683fb Support ForeignItem::Verbatim containing static with init d7c3d9a40 Support ForeignItem::Verbatim containing fn with body 78f42b4ae Support verbatim type in various items abf4c2dfd Support empty variants on all verbatim items 7859fc1b9 Let each verbatim variant take care of the trailing linebreak e80d246a7 Release 0.2.1 756ca8e3a Support ImplItem::Verbatim containing fn without body af0ca9e1d Support Pat::Verbatim containing box pattern bad0ffdf0 Support Pat::Verbatim containing const block pattern c353ce4ab Support Item::Verbatim containing macros 2.0 definition 97d06b7e4 Support Item::Verbatim containing impl block 91f77eb7d Support Item::Verbatim containing const with no init expr 6d0c81226 Support Item::Verbatim containing static with no init expr ca8a08193 Turn StaticMutability match into exhaustive match 1c0229b7f Factor out a function for printing static mutability dbf29c35b Support Item::Verbatim containing untyped static 918f087c2 Support Item::Verbatim containing function without body fbd724a82 Release 0.2.0 45aff6155 Re-enable cargo outdated CI 178a5290f Merge pull request #43 from dtolnay/syn 03793736b Update to syn 2 c1eaf472d Merge pull request #42 from dtolnay/fuzz cef5aa1f8 Check fuzz target compilation in CI 4b92465f0 Add fuzz target 5b97e8c1a Use exhaustive expr matches in the stmt printer b22d89f0b Touch up is_short_ident 9566d1533 Convert some expr matches to exhaustive in test mode 1fa676cdd Temporarily defer syn upgrade from failing cargo outdated job 29d859477 Improve formatting of unsafe blocks using small_block bffb4eb57 Merge pull request #38 from dtolnay/spanlocation a8c938191 Print location when prettyplease-update fails to parse file 4b5a35858 Resolve collapsible_if clippy lint 3c2be1af5 Simplify using PathArguments::is_none 240ec7c4b Merge pull request #37 from dtolnay/pathkind e9d45ffb1 Override choice of colons token in angle bracketed path args e7b61dcee Remove misleading comment copied from syn 81780e0eb Release 0.1.25 d754bf9bd Simpler finding of last generic param f12245c05 Merge pull request #36 from dtolnay/genericorder 1c6a69387 Fix printing of trailing comma after reordered generic params 208e46f02 Release 0.1.24 f7fb52035 Set html_root_url 5d4bd38ee Ignore let_underscore_untyped pedantic clippy lint 9c2ccf4ae Reuse all the compiler's locale resources 0e5047408 More concise construction of file path mapping 5f98a8347 Update test suite to nightly-2023-02-23 471fe8dfb Revert "Enable type layout randomization in CI on nightly" ef7636fdc Enable type layout randomization in CI on nightly 97b378b89 Support a manual trigger on CI workflow a158e6f77 Release 0.1.23 88079f576 Merge pull request #33 from wada314/master c1709d0e2 Reflecting the review comments. efa202add little more formatting 408ae4d5e Fix the type alias's `where` clause position according to the updated rust syntax (see rust issue #89122) e07d1bfc4 Fix -lLLVM-15-rust-1.68.0-nightly link error 26f813955 Fix 'crate rustc_ast_pretty required to be available in rlib format' cb56bca9f Opt out -Zrustdoc-scrape-examples on docs.rs 65fac699e Prevent actions duplication on noop merge commits 5b9c28640 Sync license text with rust-lang repos 384a7be35 Release 0.1.22 7bee2576d Update build status badge afd1507a8 Prevent build.rs rerunning unnecessarily on all source changes 230b38165 Time out workflows after 45 minutes 57ef1a2f3 Release 0.1.21 f187a3379 Merge pull request #32 from dtolnay/nestedcomment 88e689b7f Handle doc comments containing comment end characters 81cb7a9aa Resolve unnecessary_cast clippy lint 385e50509 Release 0.1.20 d00b46b85 Merge pull request #30 from dtolnay/commavariadic 9176eaeca Fix comma before variadic cd747734a Remove default package.readme metadata from Cargo.toml ecbc00c13 GitHub Workflows security hardening dd3960c83 Release 0.1.19 412d2fc28 Merge pull request #28 from dtolnay/elseif 2ab84dc65 Add a sponsors link b23346b7a Fix indentation of multi-line 'else if' 68f8ef707 Release 0.1.18 372913cf2 Update keywords in crates.io metadata a706fc246 Add categories to crates.io metadata d026d91b8 Sort package entries in Cargo.toml 6f5dc623c Release 0.1.17 ad4309e3f Center align table columns ea63e116b Checkmark to green heart 7f9d6fd0f Release 0.1.16 802efdda7 Merge pull request #26 from dtolnay/emptyangle ecfe618f4 Strip off empty angle bracketed generic arguments git-subtree-dir: dependencies/prettyplease git-subtree-split: 182b7c2bb1b3758cb652c74fef8f8ebd1b244ec8
182b7c2bb More precise gitignore patterns fc5bf6b40 Release 0.2.29 4e85487ba Merge pull request #103 from dtolnay/macrosemi 1290d70ed Preserve semicolon on braced statement-position macros 78b9b4003 Merge pull request #102 from dtolnay/floatdot 281784a84 Revert "Avoid trailing '.' on non-macro float literals" 99d37c538 Release 0.2.28 2f398b377 Merge pull request #101 from dtolnay/skiprelease e8c63d461 Skip `cargo test --release` on old rustc f191a5ba0 Merge pull request #100 from dtolnay/closurebailout 490d479ee Disregard bailouts inside of closure bodies ee1a762a5 Increase expression depth in test_precedence c56aafcc3 Fix scan_right out of sync with syn d6296ce3b Merge pull request #98 from dtolnay/permutations 78609985e Make permutations test compatible with Rust pre-1.65 0ee28e66b Add precedence permutations test 8ac4fd32e Merge pull request #97 from dtolnay/matcharm 0f7da1218 Print match arm with paren instead of brace if invalid as stmt 24712df07 Simplify match-arm spacing 9c2bb02eb Propagate fixup information inside closure body 465fa06c7 Merge pull request #96 from dtolnay/postbreak 4c613674b Support multi-char post_break 4d65c3ce7 Merge pull request #95 from dtolnay/parseablestmt d6d84246e Fix some parseable_as_stmt edge cases f2117b8a5 Merge pull request #94 from dtolnay/parseablestmt 9ff53194a Convert parseable_as_stmt to non-recursive fda4495f4 Merge pull request #93 from dtolnay/matcharm 2b7442837 Deduplicate match-arm terminator logic f3cba4ad7 Merge pull request #92 from dtolnay/rangerange 7e125a2b9 Separate consecutive ranges with a space 74772cb86 Merge pull request #91 from dtolnay/up 487078d22 Resolve unnecessary_lazy_evaluations clippy lints 65012eca6 Raise required compiler to Rust 1.62 ebefa9de8 Merge pull request #90 from dtolnay/synprecedence 1cfd65ab1 Synchronize precedence implementation from syn 2.0.96 277a63bb8 Ignore bool_to_int_with_if pedantic clippy lint 57258305f Update non_exhaustive_omitted_patterns false positive link 882f0ed68 Release 0.2.27 0ddbeab0e Merge pull request #89 from dtolnay/floatdot 988425d32 Avoid trailing '.' on non-macro float literals 5478bcf19 Release 0.2.26 1dd1aaec1 Merge pull request #88 from dtolnay/precedence 5b476dfa4 Wire up fixups for precedence 3dd7a2351 Fix imported syn code compilation 3ea1499d0 Copy precedence implementation from syn 2.0.95 b359ab075 Look into Group expressions for statement termination 6623df065 Properly space and indent const arguments in blocks 9d24e92a3 Simplify printing of Stmt::Local box ends ba264e3b2 Automatically brace the body in closures with return type d3b30dbdd Improve small block spacing around diverge expressions 8e5ae6779 Factor our expression small block printing 8c7a11cf2 Merge pull request #87 from dtolnay/exprinpath bf0ca9544 Share logic for wrapping const expression in braces in path a947562f5 Rename subexpr -> prefix_subexpr 02584e4f3 Prevent upload-artifact step from causing CI failure 50de5c67a Release 0.2.25 06791ead0 Merge pull request #85 from dtolnay/externsafe db38f770c Print safe and explicitly unsafe foreign items 91ebe48d5 Merge pull request #84 from dtolnay/buildenv 265ab3b51 Use $CARGO_PKG_VERSION from buildscript exec-time instead of build-time c6f081535 Release 0.2.24 4ca0f7623 Merge pull request #83 from dtolnay/precisecapture 3381c6447 Pretty print TypeParamBound::PreciseCapture a1701f793 Release 0.2.23 b4919cf22 Merge pull request #82 from dtolnay/rawaddr eb15c0c14 Pretty print Expr::RawAddr 75e1f4fb4 Ignore ref_option pedantic clippy lint c28d8ea50 Release 0.2.22 dd76fd613 Merge pull request #80 from dtolnay/precisecapture b54cd1266 Pretty-print precise capture syntax (`use<>`) 61bd508ab Upload CI Cargo.lock for reproducing failures ea2044e13 Release 0.2.21 11c45ff3a Merge pull request #79 from dtolnay/tailcall d2881c32e Pretty-print tail calls (`become`) 53aac3023 Merge pull request #78 from dtolnay/rustfmtbug cff71f363 Revert "Work around rustfmt 'rewriting static' bug" 8584223d1 Resolve single_match_else pedantic clippy lint 93f207864 Merge pull request #76 from dtolnay/rustfmtbug 39a3f7501 Work around rustfmt 'rewriting static' bug 060a8adf6 Update rustfmt output to nightly-2024-06-24 8f7bb3afe Raise minimum supported compiler to 1.61 22da86d97 Update unstable rustc_parse code to nightly-2024-06-06 179974cc9 Release 0.2.20 132140492 Merge pull request #73 from dtolnay/checkcfg c24065683 Resolve unexpected_cfgs warning 096eac9c6 Update rustc initialization to nightly-2024-04-17 e0d74e690 Release 0.2.19 8e800f6fd Merge pull request #72 from dtolnay/assign a6aa3903d Fix line placement for field assignment with multiline value 659fde697 Release 0.2.18 fadd0dfa9 Merge pull request #71 from dtolnay/cstr 1ad491d82 Support C-string literal syntax 86ac6a949 Raise required compiler to rust 1.60 cf2ecc110 Fix typo in readme and crate-level documentation 45f047f2a Explicitly install a Rust toolchain for cargo-outdated job 0875d2df6 Release 0.2.17 7f0aef1c7 Merge pull request #70 from dtolnay/selfas a89930441 Preserve braces in 'use path::to::{self as rename}' d8b35956b Revert "Temporarily disable prettyplease-update-examples in CI" c49b5fec0 Temporarily disable prettyplease-update-examples in CI 2b6085fb8 Update test suite to nightly-2024-03-06 d54ac4680 Merge pull request #66 from dtolnay/exhaustive bcbb5fc44 Pick up changes to non_exhaustive_omitted_patterns lint 380c7b8c5 Release 0.2.16 7b9b35074 Pull in proc-macro2 sccache fix 987bea1eb Merge pull request #65 from dtolnay/testmatchguard e5e951130 Add test of parenthesization of struct lit in match guard ae86c8ce7 Merge pull request #64 from dtolnay/grouped acdc42ebf Look into invisible delimiters to determine exterior struct lit b2f30c7f3 Merge pull request #63 from dtolnay/structcond 157544394 Add test of automatic parenthesization of braced structs in cond 11ebfab3c Format with new rustfmt that handles let-else 91033e81b Give a variable name before passing boolean arg 93aa5b31b Resolve get_first clippy lint 1e8e67e83 Test docs.rs documentation build in CI 10b1e419c Release 0.2.15 550c3296a Merge pull request #60 from dtolnay/iflet 8ad4602ea Update cargo-expand products d8f127fbe Improve indentation of if-let and while-let expressions 44f5a4a82 Update actions/checkout@v3 -> v4 823914d11 Release 0.2.14 df04af8b0 Merge pull request #59 from dtolnay/constverbatim 4b8b6ef80 Support generics on const item c3b96858f Parse const item inside verbatim trait item 80b4ef3bb Release 0.2.13 4ec51afc3 Merge pull request #58 from dtolnay/unnamedfields b5aabc5b0 Support unnamed struct/union type syntax 1bd9b57a0 Release 0.2.12 b97e38da5 Opt in to generate-link-to-definition when building on docs.rs 17dc0a9a7 Release 0.2.11 0142ff4f7 Merge pull request #56 from dtolnay/letelse ba428ece9 Improve let-else formatting 7120cbe8d Select a single docs.rs build target 8e9d001a4 Release 0.2.10 73eae68e5 Update deps to a proc-macro2 that works on current nightly f44639ce9 Add CI job using minimal-versions 6f7a9eebd Merge pull request #54 from dtolnay/verbatimattr 596ceaf8d Preserve attributes on verbatim Expr 4a2318ec7 Release 0.2.9 1593a0c0f Recognize ellipsis placeholder in all verbatim nodes 82d41ab2a Release 0.2.8 ad3755e8d Merge pull request #53 from dtolnay/closurebrace 4484fe0bf Prevent brace insertion from changing meaning of expression 046164941 Reduce visibility of requires_terminator 0aa895b7e Release 0.2.7 c32ce5c9a Merge pull request #51 from dtolnay/macros 9b42ba611 Format some standard library macros better f69383aff Release 0.2.6 8c82f67c6 Merge pull request #49 from dtolnay/macrorulessemi f4c9eac76 Fix semicolon on macro_rules written with parentheses 606490c15 Release 0.2.5 587525c3d Merge pull request #47 from dtolnay/builtin 12505bf21 Support builtin# expr syntax ea7c3dde0 Fix new unused_mut detected by nightly-2023-04-30 f23278a76 Update fuzz crate gitignore to ignore coverage dir 9204b588b Release 0.2.4 858ee6041 Fix printing of path generics in trait part of qpath b0e14e3b0 Release 0.2.3 6fd3bc1e0 Turn on verbatim feature when built by Rust playground 68f001b7d Merge pull request #45 from dtolnay/armexpr 083de82f7 Improve formatting of line-wrapped match arms c08cb35f8 Release 0.2.2 801c67e9d Pull in all syn verbatim parsing fixes 330d8923b Fix linkage name for the build script 9925e2929 Support TraitItem::Verbatim containing visibility or defaultness 6d6618fbf Support ImplItem::Verbatim containing const without init bf0d92f59 Rename flexible impl data structure to match the other verbatim types 47ff683fb Support ForeignItem::Verbatim containing static with init d7c3d9a40 Support ForeignItem::Verbatim containing fn with body 78f42b4ae Support verbatim type in various items abf4c2dfd Support empty variants on all verbatim items 7859fc1b9 Let each verbatim variant take care of the trailing linebreak e80d246a7 Release 0.2.1 756ca8e3a Support ImplItem::Verbatim containing fn without body af0ca9e1d Support Pat::Verbatim containing box pattern bad0ffdf0 Support Pat::Verbatim containing const block pattern c353ce4ab Support Item::Verbatim containing macros 2.0 definition 97d06b7e4 Support Item::Verbatim containing impl block 91f77eb7d Support Item::Verbatim containing const with no init expr 6d0c81226 Support Item::Verbatim containing static with no init expr ca8a08193 Turn StaticMutability match into exhaustive match 1c0229b7f Factor out a function for printing static mutability dbf29c35b Support Item::Verbatim containing untyped static 918f087c2 Support Item::Verbatim containing function without body fbd724a82 Release 0.2.0 45aff6155 Re-enable cargo outdated CI 178a5290f Merge pull request #43 from dtolnay/syn 03793736b Update to syn 2 c1eaf472d Merge pull request #42 from dtolnay/fuzz cef5aa1f8 Check fuzz target compilation in CI 4b92465f0 Add fuzz target 5b97e8c1a Use exhaustive expr matches in the stmt printer b22d89f0b Touch up is_short_ident 9566d1533 Convert some expr matches to exhaustive in test mode 1fa676cdd Temporarily defer syn upgrade from failing cargo outdated job 29d859477 Improve formatting of unsafe blocks using small_block bffb4eb57 Merge pull request #38 from dtolnay/spanlocation a8c938191 Print location when prettyplease-update fails to parse file 4b5a35858 Resolve collapsible_if clippy lint 3c2be1af5 Simplify using PathArguments::is_none 240ec7c4b Merge pull request #37 from dtolnay/pathkind e9d45ffb1 Override choice of colons token in angle bracketed path args e7b61dcee Remove misleading comment copied from syn 81780e0eb Release 0.1.25 d754bf9bd Simpler finding of last generic param f12245c05 Merge pull request #36 from dtolnay/genericorder 1c6a69387 Fix printing of trailing comma after reordered generic params 208e46f02 Release 0.1.24 f7fb52035 Set html_root_url 5d4bd38ee Ignore let_underscore_untyped pedantic clippy lint 9c2ccf4ae Reuse all the compiler's locale resources 0e5047408 More concise construction of file path mapping 5f98a8347 Update test suite to nightly-2023-02-23 471fe8dfb Revert "Enable type layout randomization in CI on nightly" ef7636fdc Enable type layout randomization in CI on nightly 97b378b89 Support a manual trigger on CI workflow a158e6f77 Release 0.1.23 88079f576 Merge pull request #33 from wada314/master c1709d0e2 Reflecting the review comments. efa202add little more formatting 408ae4d5e Fix the type alias's `where` clause position according to the updated rust syntax (see rust issue #89122) e07d1bfc4 Fix -lLLVM-15-rust-1.68.0-nightly link error 26f813955 Fix 'crate rustc_ast_pretty required to be available in rlib format' cb56bca9f Opt out -Zrustdoc-scrape-examples on docs.rs 65fac699e Prevent actions duplication on noop merge commits 5b9c28640 Sync license text with rust-lang repos 384a7be35 Release 0.1.22 7bee2576d Update build status badge afd1507a8 Prevent build.rs rerunning unnecessarily on all source changes 230b38165 Time out workflows after 45 minutes 57ef1a2f3 Release 0.1.21 f187a3379 Merge pull request #32 from dtolnay/nestedcomment 88e689b7f Handle doc comments containing comment end characters 81cb7a9aa Resolve unnecessary_cast clippy lint 385e50509 Release 0.1.20 d00b46b85 Merge pull request #30 from dtolnay/commavariadic 9176eaeca Fix comma before variadic cd747734a Remove default package.readme metadata from Cargo.toml ecbc00c13 GitHub Workflows security hardening dd3960c83 Release 0.1.19 412d2fc28 Merge pull request #28 from dtolnay/elseif 2ab84dc65 Add a sponsors link b23346b7a Fix indentation of multi-line 'else if' 68f8ef707 Release 0.1.18 372913cf2 Update keywords in crates.io metadata a706fc246 Add categories to crates.io metadata d026d91b8 Sort package entries in Cargo.toml 6f5dc623c Release 0.1.17 ad4309e3f Center align table columns ea63e116b Checkmark to green heart 7f9d6fd0f Release 0.1.16 802efdda7 Merge pull request #26 from dtolnay/emptyangle ecfe618f4 Strip off empty angle bracketed generic arguments git-subtree-dir: dependencies/prettyplease git-subtree-split: 182b7c2bb1b3758cb652c74fef8f8ebd1b244ec8
This adds support for the following:
where
is_Some
,is_None
, andget_Some
are auto-generated by the#[is_variant]
attribute-proc-macro.is_Some
andis_None
are tagged as#[verifier(is_variant)]
and encoded using AIR/SMT's builtin(is-Variant)
(like pattern matching VCs).Once this is approved, I'll add
#[is_variant]
to, e.g.pervasive::Option
.