summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2022-05-31 20:35:41 +0900
committerYuki Okushi <jtitor@2k36.org>2022-06-01 20:04:57 +0900
commitea50d773e3f75855ca8a40ca72ad8f8c67153474 (patch)
tree28b7be9d628400a17d419b3553085c546fb39007
parentd35d972e6974d40d30362344ea619a5b560aae20 (diff)
downloadrust-ea50d773e3f75855ca8a40ca72ad8f8c67153474.tar.gz
Add regression test for #71546
-rw-r--r--src/test/ui/borrowck/issue-71546.rs19
-rw-r--r--src/test/ui/borrowck/issue-71546.stderr20
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/issue-71546.rs b/src/test/ui/borrowck/issue-71546.rs
new file mode 100644
index 00000000000..943f7f86e55
--- /dev/null
+++ b/src/test/ui/borrowck/issue-71546.rs
@@ -0,0 +1,19 @@
+// Regression test for #71546.
+
+// ignore-compare-mode-nll
+// NLL stderr is different from the original one.
+
+pub fn serialize_as_csv<V>(value: &V) -> Result<String, &str>
+where
+ V: 'static,
+ for<'a> &'a V: IntoIterator,
+ for<'a> <&'a V as IntoIterator>::Item: ToString + 'static,
+{
+ let csv_str: String = value //~ ERROR: the associated type `<&'a V as IntoIterator>::Item` may not live long enough
+ .into_iter()
+ .map(|elem| elem.to_string())
+ .collect::<String>();
+ Ok(csv_str)
+}
+
+fn main() {}
diff --git a/src/test/ui/borrowck/issue-71546.stderr b/src/test/ui/borrowck/issue-71546.stderr
new file mode 100644
index 00000000000..d479ca8f1d8
--- /dev/null
+++ b/src/test/ui/borrowck/issue-71546.stderr
@@ -0,0 +1,20 @@
+error[E0310]: the associated type `<&'a V as IntoIterator>::Item` may not live long enough
+ --> $DIR/issue-71546.rs:12:27
+ |
+LL | let csv_str: String = value
+ | ___________________________^
+LL | | .into_iter()
+LL | | .map(|elem| elem.to_string())
+ | |_____________________________________^
+ |
+ = help: consider adding an explicit lifetime bound `<&'a V as IntoIterator>::Item: 'static`...
+ = note: ...so that the type `<&'a V as IntoIterator>::Item` will meet its required lifetime bounds...
+note: ...that is required by this bound
+ --> $DIR/issue-71546.rs:10:55
+ |
+LL | for<'a> <&'a V as IntoIterator>::Item: ToString + 'static,
+ | ^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0310`.