Description
Add --no-copy <regex>
and Builder::no_copy(String)
to supply regexes for matching against types that we should not derive or implement Copy
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-copy <regex>
CLI flags into invocations of the builder method. -
Making the
MonotoneFramework::constrain
function insrc/ir/analysis/derive_copy.rs
check if the given item is explicitly marked not to beCopy
, and if so, inserting it into theself.cannot_derive_copy
set viareturn self.insert(id)
. -
Tests!
-
When the no-copy type is transitively referenced by a whitelisted item
-
When the no-copy type is explicitly whitelisted
-
When the no-copy type is marked opaque
-