-
Notifications
You must be signed in to change notification settings - Fork 763
Description
Add --no-default <regex>
and Builder::no_default(String)
to supply regexes for matching against types that we should not derive or implement Default
for.
Adding this feature involves:
-
Adding a new
RegexSet
member tobindgen::Builder
(similar to thewhitelisted_types
set). -
A
Builder
method to add strings to thatRegexSet
. -
Plumbing in
src/options.rs
to convert--no-default <regex>
CLI flags into invocations of the builder method. -
Making the
MonotoneFramework::constrain
function insrc/ir/analysis/derive_default.rs
check if the given item is explicitly marked not to beDefault
, and if so, inserting it into theself.cannot_derive_default
set viareturn self.insert(id)
. -
Tests!
-
When the no-default type is transitively referenced by a whitelisted item
-
When the no-default type is explicitly whitelisted
-
When the no-default type is marked opaque
-