about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-04-16 05:14:21 +0200
committerGitHub <noreply@github.com>2019-04-16 05:14:21 +0200
commitbdf24732897e17120753244f76dceba04a027e7d (patch)
tree74167c203cd2dd7c490a565e117eeb630508b10c /src/test
parentd9422f00a0f84c62b9232b485ef98585b0f5bc86 (diff)
parent13a05a27e9a5747cad090b1670c0a6b0baa624b9 (diff)
downloadrust-bdf24732897e17120753244f76dceba04a027e7d.tar.gz
rust-bdf24732897e17120753244f76dceba04a027e7d.zip
Rollup merge of #59903 - estebank:after-main, r=oli-obk
Continue evaluating after missing main
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/continue-after-missing-main.rs32
-rw-r--r--src/test/ui/continue-after-missing-main.stderr17
2 files changed, 49 insertions, 0 deletions
diff --git a/src/test/ui/continue-after-missing-main.rs b/src/test/ui/continue-after-missing-main.rs
new file mode 100644
index 00000000000..7455c2a431d
--- /dev/null
+++ b/src/test/ui/continue-after-missing-main.rs
@@ -0,0 +1,32 @@
+#![allow(dead_code)]
+
+// error-pattern:`main` function not found in crate
+
+struct Tableau<'a, MP> {
+    provider: &'a MP,
+}
+
+impl<'adapted_matrix_provider, 'original_data, MP>
+    Tableau<'adapted_matrix_provider, AdaptedMatrixProvider<'original_data, MP>>
+{
+    fn provider(&self) -> &'adapted_matrix_provider AdaptedMatrixProvider</*'original_data,*/ MP> {
+        self.provider
+    }
+}
+
+struct AdaptedMatrixProvider<'a, T> {
+    original_problem: &'a T,
+}
+
+impl<'a, T> AdaptedMatrixProvider<'a, T> {
+    fn clone_with_extra_bound(&self) -> Self {
+        AdaptedMatrixProvider { original_problem: self.original_problem }
+    }
+}
+
+fn create_and_solve_subproblems<'data_provider, 'original_data, MP>(
+    tableau: Tableau<'data_provider, AdaptedMatrixProvider<'original_data, MP>>,
+) {
+    let _: AdaptedMatrixProvider<'original_data, MP> = tableau.provider().clone_with_extra_bound();
+    //~^ ERROR lifetime mismatch
+}
diff --git a/src/test/ui/continue-after-missing-main.stderr b/src/test/ui/continue-after-missing-main.stderr
new file mode 100644
index 00000000000..8d64fee8bda
--- /dev/null
+++ b/src/test/ui/continue-after-missing-main.stderr
@@ -0,0 +1,17 @@
+error[E0601]: `main` function not found in crate `continue_after_missing_main`
+   |
+   = note: consider adding a `main` function to `$DIR/continue-after-missing-main.rs`
+
+error[E0623]: lifetime mismatch
+  --> $DIR/continue-after-missing-main.rs:30:56
+   |
+LL |     tableau: Tableau<'data_provider, AdaptedMatrixProvider<'original_data, MP>>,
+   |              ------------------------------------------------------------------ these two types are declared with different lifetimes...
+LL | ) {
+LL |     let _: AdaptedMatrixProvider<'original_data, MP> = tableau.provider().clone_with_extra_bound();
+   |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...but data from `tableau` flows into `tableau` here
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0601, E0623.
+For more information about an error, try `rustc --explain E0601`.