diff options
| author | bors <bors@rust-lang.org> | 2024-07-24 04:48:02 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-07-24 04:48:02 +0000 |
| commit | f4831e6317fe54a4e2e3309ff75d396f3bca291d (patch) | |
| tree | 1551b1808986bb2e38e6bef128f944b8cb16cbe0 /library/alloc/src/string.rs | |
| parent | 42103d69b73fb4e9d03d5cf66ec12985bb526f6e (diff) | |
| parent | 1fe9726c954ff24c47b6e3665094cef58637c8ad (diff) | |
| download | rust-f4831e6317fe54a4e2e3309ff75d396f3bca291d.tar.gz rust-f4831e6317fe54a4e2e3309ff75d396f3bca291d.zip | |
Auto merge of #128128 - matthiaskrgr:rollup-jz6w0ck, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #125962 (Update tracking issue for `const_binary_heap_new_in`) - #126770 (Add elem_offset and related methods) - #127481 (Remove generic lifetime parameter of trait `Pattern`) - #128043 (Docs for core::primitive: mention that "core" can be shadowed, too, so we should write "::core") - #128092 (Remove wrapper functions from c.rs) - #128100 (Allow to pass a full path for `run-make` tests) - #128106 (Fix return type of FileAttr methods on AIX target) - #128108 (ensure std step before preparing sysroot) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'library/alloc/src/string.rs')
| -rw-r--r-- | library/alloc/src/string.rs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs index 07ffd3e1519..0ff66167a46 100644 --- a/library/alloc/src/string.rs +++ b/library/alloc/src/string.rs @@ -1497,10 +1497,7 @@ impl String { /// ``` #[cfg(not(no_global_oom_handling))] #[unstable(feature = "string_remove_matches", reason = "new API", issue = "72826")] - pub fn remove_matches<'a, P>(&'a mut self, pat: P) - where - P: for<'x> Pattern<'x>, - { + pub fn remove_matches<P: Pattern>(&mut self, pat: P) { use core::str::pattern::Searcher; let rejections = { @@ -2288,35 +2285,41 @@ impl<'a> Extend<Cow<'a, str>> for String { reason = "API not fully fleshed out and ready to be stabilized", issue = "27721" )] -impl<'a, 'b> Pattern<'a> for &'b String { - type Searcher = <&'b str as Pattern<'a>>::Searcher; +impl<'b> Pattern for &'b String { + type Searcher<'a> = <&'b str as Pattern>::Searcher<'a>; - fn into_searcher(self, haystack: &'a str) -> <&'b str as Pattern<'a>>::Searcher { + fn into_searcher(self, haystack: &str) -> <&'b str as Pattern>::Searcher<'_> { self[..].into_searcher(haystack) } #[inline] - fn is_contained_in(self, haystack: &'a str) -> bool { + fn is_contained_in(self, haystack: &str) -> bool { self[..].is_contained_in(haystack) } #[inline] - fn is_prefix_of(self, haystack: &'a str) -> bool { + fn is_prefix_of(self, haystack: &str) -> bool { self[..].is_prefix_of(haystack) } #[inline] - fn strip_prefix_of(self, haystack: &'a str) -> Option<&'a str> { + fn strip_prefix_of(self, haystack: &str) -> Option<&str> { self[..].strip_prefix_of(haystack) } #[inline] - fn is_suffix_of(self, haystack: &'a str) -> bool { + fn is_suffix_of<'a>(self, haystack: &'a str) -> bool + where + Self::Searcher<'a>: core::str::pattern::ReverseSearcher<'a>, + { self[..].is_suffix_of(haystack) } #[inline] - fn strip_suffix_of(self, haystack: &'a str) -> Option<&'a str> { + fn strip_suffix_of<'a>(self, haystack: &'a str) -> Option<&str> + where + Self::Searcher<'a>: core::str::pattern::ReverseSearcher<'a>, + { self[..].strip_suffix_of(haystack) } } |
