Auto merge of #71356 - Dylan-DPC:rollup-liockhk, r=Dylan-DPC
Rollup of 5 pull requests Successful merges: - #71250 (Replace big JS dict with JSON parsing) - #71270 (Fix `has_no_input_arg` check and rename it to `has_only_self_parameter`) - #71284 (fix -Zast-json to output correct JSON form) - #71328 (Stabilize PathBuf capacity methods) - #71334 (Update pattern docs.) Failed merges: r? @ghost
This commit is contained in:
commit
20fc02f836
11 changed files with 223 additions and 60 deletions
|
@ -3010,6 +3010,12 @@ impl str {
|
|||
///
|
||||
/// Returns `false` if it does not.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Basic usage:
|
||||
|
@ -3031,6 +3037,12 @@ impl str {
|
|||
///
|
||||
/// Returns `false` if it does not.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Basic usage:
|
||||
|
@ -3051,6 +3063,12 @@ impl str {
|
|||
///
|
||||
/// Returns `false` if it does not.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Basic usage:
|
||||
|
@ -3074,10 +3092,12 @@ impl str {
|
|||
///
|
||||
/// Returns [`None`] if the pattern doesn't match.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`None`]: option/enum.Option.html#variant.None
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -3121,10 +3141,12 @@ impl str {
|
|||
///
|
||||
/// Returns [`None`] if the pattern doesn't match.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`None`]: option/enum.Option.html#variant.None
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -3166,8 +3188,11 @@ impl str {
|
|||
/// An iterator over substrings of this string slice, separated by
|
||||
/// characters matched by a pattern.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3285,6 +3310,12 @@ impl str {
|
|||
/// `split` in that `split_inclusive` leaves the matched part as the
|
||||
/// terminator of the substring.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -3319,8 +3350,11 @@ impl str {
|
|||
/// An iterator over substrings of the given string slice, separated by
|
||||
/// characters matched by a pattern and yielded in reverse order.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3370,8 +3404,11 @@ impl str {
|
|||
/// An iterator over substrings of the given string slice, separated by
|
||||
/// characters matched by a pattern.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// Equivalent to [`split`], except that the trailing substring
|
||||
/// is skipped if empty.
|
||||
|
@ -3414,10 +3451,11 @@ impl str {
|
|||
/// An iterator over substrings of `self`, separated by characters
|
||||
/// matched by a pattern and yielded in reverse order.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// Additional libraries might provide more complex patterns like
|
||||
/// regular expressions.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// Equivalent to [`split`], except that the trailing substring is
|
||||
/// skipped if empty.
|
||||
|
@ -3462,8 +3500,11 @@ impl str {
|
|||
/// If `n` substrings are returned, the last substring (the `n`th substring)
|
||||
/// will contain the remainder of the string.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3512,8 +3553,11 @@ impl str {
|
|||
/// If `n` substrings are returned, the last substring (the `n`th substring)
|
||||
/// will contain the remainder of the string.
|
||||
///
|
||||
/// The pattern can be any type that implements the Pattern trait. Notable
|
||||
/// examples are `&str`, [`char`], and closures that determines the split.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3557,8 +3601,11 @@ impl str {
|
|||
/// An iterator over the disjoint matches of a pattern within the given string
|
||||
/// slice.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3593,8 +3640,11 @@ impl str {
|
|||
/// An iterator over the disjoint matches of a pattern within this string slice,
|
||||
/// yielded in reverse order.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3634,8 +3684,11 @@ impl str {
|
|||
/// For matches of `pat` within `self` that overlap, only the indices
|
||||
/// corresponding to the first match are returned.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines
|
||||
/// if a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3676,8 +3729,11 @@ impl str {
|
|||
/// For matches of `pat` within `self` that overlap, only the indices
|
||||
/// corresponding to the last match are returned.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if a
|
||||
/// character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Iterator behavior
|
||||
///
|
||||
|
@ -3894,8 +3950,11 @@ impl str {
|
|||
/// Returns a string slice with all prefixes and suffixes that match a
|
||||
/// pattern repeatedly removed.
|
||||
///
|
||||
/// The pattern can be a [`char`] or a closure that determines if a
|
||||
/// character matches.
|
||||
/// The [pattern] can be a [`char`], a slice of [`char`]s, or a function
|
||||
/// or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -3939,8 +3998,11 @@ impl str {
|
|||
/// Returns a string slice with all prefixes that match a pattern
|
||||
/// repeatedly removed.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Text directionality
|
||||
///
|
||||
|
@ -3981,6 +4043,12 @@ impl str {
|
|||
///
|
||||
/// If the string does not start with `prefix`, `None` is returned.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -4005,6 +4073,12 @@ impl str {
|
|||
///
|
||||
/// If the string does not end with `suffix`, `None` is returned.
|
||||
///
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -4027,8 +4101,11 @@ impl str {
|
|||
/// Returns a string slice with all suffixes that match a pattern
|
||||
/// repeatedly removed.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that
|
||||
/// determines if a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Text directionality
|
||||
///
|
||||
|
@ -4073,10 +4150,11 @@ impl str {
|
|||
/// Returns a string slice with all prefixes that match a pattern
|
||||
/// repeatedly removed.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||
/// a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Text directionality
|
||||
///
|
||||
|
@ -4109,10 +4187,11 @@ impl str {
|
|||
/// Returns a string slice with all suffixes that match a pattern
|
||||
/// repeatedly removed.
|
||||
///
|
||||
/// The pattern can be a `&str`, [`char`], or a closure that
|
||||
/// determines if a character matches.
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// [`char`]: primitive.char.html
|
||||
/// [pattern]: str/pattern/index.html
|
||||
///
|
||||
/// # Text directionality
|
||||
///
|
||||
|
|
|
@ -1,7 +1,41 @@
|
|||
//! The string Pattern API.
|
||||
//!
|
||||
//! The Pattern API provides a generic mechanism for using different pattern
|
||||
//! types when searching through a string.
|
||||
//!
|
||||
//! For more details, see the traits [`Pattern`], [`Searcher`],
|
||||
//! [`ReverseSearcher`], and [`DoubleEndedSearcher`].
|
||||
//!
|
||||
//! Although this API is unstable, it is exposed via stable APIs on the
|
||||
//! [`str`] type.
|
||||
//!
|
||||
//! # Examples
|
||||
//!
|
||||
//! [`Pattern`] is [implemented][pattern-impls] in the stable API for
|
||||
//! [`&str`], [`char`], slices of [`char`], and functions and closures
|
||||
//! implementing `FnMut(char) -> bool`.
|
||||
//!
|
||||
//! ```
|
||||
//! let s = "Can you find a needle in a haystack?";
|
||||
//!
|
||||
//! // &str pattern
|
||||
//! assert_eq!(s.find("you"), Some(4));
|
||||
//! // char pattern
|
||||
//! assert_eq!(s.find('n'), Some(2));
|
||||
//! // slice of chars pattern
|
||||
//! assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u'][..]), Some(1));
|
||||
//! // closure pattern
|
||||
//! assert_eq!(s.find(|c: char| c.is_ascii_punctuation()), Some(35));
|
||||
//! ```
|
||||
//!
|
||||
//! [`&str`]: ../../../std/primitive.str.html
|
||||
//! [`char`]: ../../../std/primitive.char.html
|
||||
//! [`str`]: ../../../std/primitive.str.html
|
||||
//! [`DoubleEndedSearcher`]: trait.DoubleEndedSearcher.html
|
||||
//! [`Pattern`]: trait.Pattern.html
|
||||
//! [`ReverseSearcher`]: trait.ReverseSearcher.html
|
||||
//! [`Searcher`]: trait.Searcher.html
|
||||
//! [pattern-impls]: trait.Pattern.html#implementors
|
||||
|
||||
#![unstable(
|
||||
feature = "pattern",
|
||||
|
@ -702,7 +736,7 @@ unsafe impl<'a, 'b> ReverseSearcher<'a> for CharSliceSearcher<'a, 'b> {
|
|||
|
||||
impl<'a, 'b> DoubleEndedSearcher<'a> for CharSliceSearcher<'a, 'b> {}
|
||||
|
||||
/// Searches for chars that are equal to any of the chars in the array.
|
||||
/// Searches for chars that are equal to any of the chars in the slice.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
|
|
@ -2211,14 +2211,14 @@ rustc_index::newtype_index! {
|
|||
}
|
||||
|
||||
impl rustc_serialize::Encodable for AttrId {
|
||||
fn encode<S: Encoder>(&self, _: &mut S) -> Result<(), S::Error> {
|
||||
Ok(())
|
||||
fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> {
|
||||
s.emit_unit()
|
||||
}
|
||||
}
|
||||
|
||||
impl rustc_serialize::Decodable for AttrId {
|
||||
fn decode<D: Decoder>(_: &mut D) -> Result<AttrId, D::Error> {
|
||||
Ok(crate::attr::mk_attr_id())
|
||||
fn decode<D: Decoder>(d: &mut D) -> Result<AttrId, D::Error> {
|
||||
d.read_nil().map(|_| crate::attr::mk_attr_id())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
let mut methods =
|
||||
self.probe_for_return_type(span, probe::Mode::MethodCall, expected, checked_ty, hir_id);
|
||||
methods.retain(|m| {
|
||||
self.has_no_input_arg(m)
|
||||
self.has_only_self_parameter(m)
|
||||
&& self
|
||||
.tcx
|
||||
.get_attrs(m.def_id)
|
||||
|
@ -243,10 +243,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
methods
|
||||
}
|
||||
|
||||
// This function checks if the method isn't static and takes other arguments than `self`.
|
||||
fn has_no_input_arg(&self, method: &AssocItem) -> bool {
|
||||
/// This function checks whether the method is not static and does not accept other parameters than `self`.
|
||||
fn has_only_self_parameter(&self, method: &AssocItem) -> bool {
|
||||
match method.kind {
|
||||
ty::AssocKind::Fn => self.tcx.fn_sig(method.def_id).inputs().skip_binder().len() == 1,
|
||||
ty::AssocKind::Fn => {
|
||||
method.fn_has_self_parameter
|
||||
&& self.tcx.fn_sig(method.def_id).inputs().skip_binder().len() == 1
|
||||
}
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -789,6 +789,37 @@ themePicker.onblur = handleThemeButtonsBlur;
|
|||
Ok((ret, krates))
|
||||
}
|
||||
|
||||
fn collect_json(path: &Path, krate: &str) -> io::Result<(Vec<String>, Vec<String>)> {
|
||||
let mut ret = Vec::new();
|
||||
let mut krates = Vec::new();
|
||||
|
||||
if path.exists() {
|
||||
for line in BufReader::new(File::open(path)?).lines() {
|
||||
let line = line?;
|
||||
if !line.starts_with("\"") {
|
||||
continue;
|
||||
}
|
||||
if line.starts_with(&format!("\"{}\"", krate)) {
|
||||
continue;
|
||||
}
|
||||
if line.ends_with(",\\") {
|
||||
ret.push(line[..line.len() - 2].to_string());
|
||||
} else {
|
||||
// Ends with "\\" (it's the case for the last added crate line)
|
||||
ret.push(line[..line.len() - 1].to_string());
|
||||
}
|
||||
krates.push(
|
||||
line.split('"')
|
||||
.filter(|s| !s.is_empty())
|
||||
.next()
|
||||
.map(|s| s.to_owned())
|
||||
.unwrap_or_else(String::new),
|
||||
);
|
||||
}
|
||||
}
|
||||
Ok((ret, krates))
|
||||
}
|
||||
|
||||
fn show_item(item: &IndexItem, krate: &str) -> String {
|
||||
format!(
|
||||
"{{'crate':'{}','ty':{},'name':'{}','desc':'{}','p':'{}'{}}}",
|
||||
|
@ -909,18 +940,18 @@ themePicker.onblur = handleThemeButtonsBlur;
|
|||
|
||||
// Update the search index
|
||||
let dst = cx.dst.join(&format!("search-index{}.js", cx.shared.resource_suffix));
|
||||
let (mut all_indexes, mut krates) = try_err!(collect(&dst, &krate.name, "searchIndex"), &dst);
|
||||
let (mut all_indexes, mut krates) = try_err!(collect_json(&dst, &krate.name), &dst);
|
||||
all_indexes.push(search_index);
|
||||
|
||||
// Sort the indexes by crate so the file will be generated identically even
|
||||
// with rustdoc running in parallel.
|
||||
all_indexes.sort();
|
||||
{
|
||||
let mut v = String::from("var searchIndex={};\n");
|
||||
v.push_str(&all_indexes.join("\n"));
|
||||
let mut v = String::from("var searchIndex = JSON.parse('{\\\n");
|
||||
v.push_str(&all_indexes.join(",\\\n"));
|
||||
// "addSearchOptions" has to be called first so the crate filtering can be set before the
|
||||
// search might start (if it's set into the URL for example).
|
||||
v.push_str("\naddSearchOptions(searchIndex);initSearch(searchIndex);");
|
||||
v.push_str("\\\n}');\naddSearchOptions(searchIndex);initSearch(searchIndex);");
|
||||
cx.shared.fs.write(&dst, &v)?;
|
||||
}
|
||||
if options.enable_index_page {
|
||||
|
|
|
@ -634,7 +634,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String {
|
|||
|
||||
// Collect the index into a string
|
||||
format!(
|
||||
r#"searchIndex["{}"] = {};"#,
|
||||
r#""{}":{}"#,
|
||||
krate.name,
|
||||
serde_json::to_string(&CrateData {
|
||||
doc: crate_doc,
|
||||
|
@ -642,6 +642,11 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String {
|
|||
paths: crate_paths,
|
||||
})
|
||||
.expect("failed serde conversion")
|
||||
// All these `replace` calls are because we have to go through JS string for JSON content.
|
||||
.replace(r"\", r"\\")
|
||||
.replace("'", r"\'")
|
||||
// We need to escape double quotes for the JSON.
|
||||
.replace("\\\"", "\\\\\"")
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1116,7 +1116,6 @@ impl PathBuf {
|
|||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(path_buf_capacity)]
|
||||
/// use std::path::PathBuf;
|
||||
///
|
||||
/// let mut path = PathBuf::with_capacity(10);
|
||||
|
@ -1130,7 +1129,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`with_capacity`]: ../ffi/struct.OsString.html#method.with_capacity
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn with_capacity(capacity: usize) -> PathBuf {
|
||||
PathBuf { inner: OsString::with_capacity(capacity) }
|
||||
}
|
||||
|
@ -1374,7 +1373,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`capacity`]: ../ffi/struct.OsString.html#method.capacity
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn capacity(&self) -> usize {
|
||||
self.inner.capacity()
|
||||
}
|
||||
|
@ -1383,7 +1382,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`clear`]: ../ffi/struct.OsString.html#method.clear
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn clear(&mut self) {
|
||||
self.inner.clear()
|
||||
}
|
||||
|
@ -1392,7 +1391,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`reserve`]: ../ffi/struct.OsString.html#method.reserve
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn reserve(&mut self, additional: usize) {
|
||||
self.inner.reserve(additional)
|
||||
}
|
||||
|
@ -1401,7 +1400,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`reserve_exact`]: ../ffi/struct.OsString.html#method.reserve_exact
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn reserve_exact(&mut self, additional: usize) {
|
||||
self.inner.reserve_exact(additional)
|
||||
}
|
||||
|
@ -1410,7 +1409,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`shrink_to_fit`]: ../ffi/struct.OsString.html#method.shrink_to_fit
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[stable(feature = "path_buf_capacity", since = "1.44.0")]
|
||||
pub fn shrink_to_fit(&mut self) {
|
||||
self.inner.shrink_to_fit()
|
||||
}
|
||||
|
@ -1419,7 +1418,7 @@ impl PathBuf {
|
|||
///
|
||||
/// [`shrink_to`]: ../ffi/struct.OsString.html#method.shrink_to
|
||||
/// [`OsString`]: ../ffi/struct.OsString.html
|
||||
#[unstable(feature = "path_buf_capacity", issue = "58234")]
|
||||
#[unstable(feature = "shrink_to", issue = "56431")]
|
||||
pub fn shrink_to(&mut self, min_capacity: usize) {
|
||||
self.inner.shrink_to(min_capacity)
|
||||
}
|
||||
|
|
10
src/test/ui/ast-json/ast-json-noexpand-output.rs
Normal file
10
src/test/ui/ast-json/ast-json-noexpand-output.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
// Check that AST json printing works.
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// check-pass
|
||||
// compile-flags: -Zast-json-noexpand
|
||||
// normalize-stdout-test ":\d+" -> ":0"
|
||||
|
||||
// Only include a single item to reduce how often the test output needs
|
||||
// updating.
|
||||
extern crate core;
|
1
src/test/ui/ast-json/ast-json-noexpand-output.stdout
Normal file
1
src/test/ui/ast-json/ast-json-noexpand-output.stdout
Normal file
|
@ -0,0 +1 @@
|
|||
{"module":{"inner":{"lo":0,"hi":0},"items":[{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"node":"Inherited","span":{"lo":0,"hi":0}},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":{"_field0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["extern",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["core",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":"Semi","span":{"lo":0,"hi":0}}]},"NonJoint"]]}}],"inline":true},"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}]},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"_field0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"NonJoint"]]}]}}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"span":{"lo":0,"hi":0},"proc_macros":[]}
|
|
@ -1,7 +1,8 @@
|
|||
// Check that AST json printing works.
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// check-pass
|
||||
// compile-flags: -Zast-json-noexpand
|
||||
// compile-flags: -Zast-json
|
||||
// normalize-stdout-test ":\d+" -> ":0"
|
||||
|
||||
// Only include a single item to reduce how often the test output needs
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"module":{"inner":{"lo":0,"hi":0},"items":[{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"node":"Inherited","span":{"lo":0,"hi":0}},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":{"_field0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["extern",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["core",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":"Semi","span":{"lo":0,"hi":0}}]},"NonJoint"]]}}],"inline":true},"attrs":[],"span":{"lo":0,"hi":0},"proc_macros":[]}
|
||||
{"module":{"inner":{"lo":0,"hi":0},"items":[{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"prelude_import","span":{"lo":0,"hi":0}},"id":0,"args":null}]},"args":"Empty"}]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"node":"Inherited","span":{"lo":0,"hi":0}},"ident":{"name":"","span":{"lo":0,"hi":0}},"kind":{"variant":"Use","fields":[{"prefix":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"{{root}}","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"std","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"prelude","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"v1","span":{"lo":0,"hi":0}},"id":0,"args":null}]},"kind":"Glob","span":{"lo":0,"hi":0}}]},"tokens":null},{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"macro_use","span":{"lo":0,"hi":0}},"id":0,"args":null}]},"args":"Empty"}]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"node":"Inherited","span":{"lo":0,"hi":0}},"ident":{"name":"std","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null},{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"node":"Inherited","span":{"lo":0,"hi":0}},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":{"_field0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["extern",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["core",false]},"span":{"lo":0,"hi":0}}]},"NonJoint"],[{"variant":"Token","fields":[{"kind":"Semi","span":{"lo":0,"hi":0}}]},"NonJoint"]]}}],"inline":true},"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}]},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"_field0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"NonJoint"]]}]}}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"span":{"lo":0,"hi":0},"proc_macros":[]}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue