about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorCorey Richardson <corey@octayn.net>2014-12-15 09:45:28 -0500
committerCorey Richardson <corey@octayn.net>2015-01-01 17:12:15 -0500
commit53ece7158500e561c69d6e07160518f19d8beafd (patch)
tree36ae3f5c6446362e42f7c111b972170d37c24ab4 /src/test
parentc594959cdff07b5545747809bb045bfa2868ebcc (diff)
downloadrust-53ece7158500e561c69d6e07160518f19d8beafd.tar.gz
rust-53ece7158500e561c69d6e07160518f19d8beafd.zip
Implement numeric fallback
Doesn't yet converge on a fixed point, but generally works. A better algorithm
will come with the implementation of default type parameter fallback.

If inference fails to determine an exact integral or floating point type, it
will set the type to i32 or f64, respectively.

Closes #16968
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/issue-16966.rs3
-rw-r--r--src/test/compile-fail/traits-multidispatch-convert-ambig-dest.rs2
-rw-r--r--src/test/run-fail/issue-6458-1.rs (renamed from src/test/compile-fail/issue-6458-1.rs)3
-rw-r--r--src/test/run-pass/integer-literal-suffix-inference-2.rs (renamed from src/test/compile-fail/integer-literal-suffix-inference-2.rs)2
-rw-r--r--src/test/run-pass/integer-literal-suffix-inference-3.rs (renamed from src/test/compile-fail/integer-literal-suffix-inference-3.rs)1
-rw-r--r--src/test/run-pass/issue-11382.rs (renamed from src/test/compile-fail/issue-11382.rs)5
-rw-r--r--src/test/run-pass/issue-15730.rs (renamed from src/test/compile-fail/issue-15730.rs)1
-rw-r--r--src/test/run-pass/issue-16783.rs (renamed from src/test/compile-fail/issue-16783.rs)1
-rw-r--r--src/test/run-pass/traits-multidispatch-infer-convert-source-and-target.rs35
-rw-r--r--src/test/run-pass/traits-multidispatch-infer-convert-target.rs7
10 files changed, 10 insertions, 50 deletions
diff --git a/src/test/compile-fail/issue-16966.rs b/src/test/compile-fail/issue-16966.rs
index dfa23c48afa..5dbf7546de2 100644
--- a/src/test/compile-fail/issue-16966.rs
+++ b/src/test/compile-fail/issue-16966.rs
@@ -8,8 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// error-pattern:type annotations required
 fn main() {
     panic!(
-        1.2 //~ ERROR cannot determine a type for this expression
+        std::default::Default::default()
     );
 }
diff --git a/src/test/compile-fail/traits-multidispatch-convert-ambig-dest.rs b/src/test/compile-fail/traits-multidispatch-convert-ambig-dest.rs
index 3c461fd5b4b..0a5aa1b7bd3 100644
--- a/src/test/compile-fail/traits-multidispatch-convert-ambig-dest.rs
+++ b/src/test/compile-fail/traits-multidispatch-convert-ambig-dest.rs
@@ -33,7 +33,7 @@ where T : Convert<U>
 }
 
 fn a() {
-    test(22_i32, 44); //~ ERROR type annotations required
+    test(22_i32, std::default::Default::default()); //~ ERROR type annotations required
 }
 
 fn main() {}
diff --git a/src/test/compile-fail/issue-6458-1.rs b/src/test/run-fail/issue-6458-1.rs
index 52a57fa2f44..631517f6a3c 100644
--- a/src/test/compile-fail/issue-6458-1.rs
+++ b/src/test/run-fail/issue-6458-1.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// error-pattern:explicit panic
+
 fn foo<T>(t: T) {}
 fn main() { foo(panic!()) }
-    //~^ ERROR type annotations required
diff --git a/src/test/compile-fail/integer-literal-suffix-inference-2.rs b/src/test/run-pass/integer-literal-suffix-inference-2.rs
index 7c862d04d20..05973a545a2 100644
--- a/src/test/compile-fail/integer-literal-suffix-inference-2.rs
+++ b/src/test/run-pass/integer-literal-suffix-inference-2.rs
@@ -11,7 +11,7 @@
 fn foo(_: *const ()) {}
 
 fn main() {
-    let a = 3;  //~ ERROR cannot determine a type for this local variable
+    let a = 3;
     foo(&a as *const _ as *const ());
 }
 
diff --git a/src/test/compile-fail/integer-literal-suffix-inference-3.rs b/src/test/run-pass/integer-literal-suffix-inference-3.rs
index dc3db985660..05b275a0d8c 100644
--- a/src/test/compile-fail/integer-literal-suffix-inference-3.rs
+++ b/src/test/run-pass/integer-literal-suffix-inference-3.rs
@@ -10,6 +10,5 @@
 
 fn main() {
     println!("{}", std::mem::size_of_val(&1));
-    //~^ ERROR cannot determine a type for this expression
 }
 
diff --git a/src/test/compile-fail/issue-11382.rs b/src/test/run-pass/issue-11382.rs
index 44f6cd7719d..51996614d25 100644
--- a/src/test/compile-fail/issue-11382.rs
+++ b/src/test/run-pass/issue-11382.rs
@@ -9,8 +9,5 @@
 // except according to those terms.
 
 fn main() {
-panic!(
-    1.2
-//~^ ERROR cannot determine the type of this number; add a suffix to specify the type explicitly
-);
+    println!("{}", 1.2);
 }
diff --git a/src/test/compile-fail/issue-15730.rs b/src/test/run-pass/issue-15730.rs
index c29e74af03c..a1a5922e150 100644
--- a/src/test/compile-fail/issue-15730.rs
+++ b/src/test/run-pass/issue-15730.rs
@@ -12,6 +12,5 @@
 
 fn main() {
     let mut array = [1, 2, 3];
-//~^ ERROR cannot determine a type for this local variable: cannot determine the type of this integ
     let pie_slice = array[1..2];
 }
diff --git a/src/test/compile-fail/issue-16783.rs b/src/test/run-pass/issue-16783.rs
index 1b52bd9c3de..cb12d138a5f 100644
--- a/src/test/compile-fail/issue-16783.rs
+++ b/src/test/run-pass/issue-16783.rs
@@ -10,6 +10,5 @@
 
 pub fn main() {
     let x = [1, 2, 3];
-    //~^ ERROR cannot determine a type for this local variable: cannot determine the type of this
     let y = x.as_slice();
 }
diff --git a/src/test/run-pass/traits-multidispatch-infer-convert-source-and-target.rs b/src/test/run-pass/traits-multidispatch-infer-convert-source-and-target.rs
deleted file mode 100644
index c10029791df..00000000000
--- a/src/test/run-pass/traits-multidispatch-infer-convert-source-and-target.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that if there is one impl we can infer everything.
-
-use std::mem;
-
-trait Convert<Target> {
-    fn convert(&self) -> Target;
-}
-
-impl Convert<u32> for i16 {
-    fn convert(&self) -> u32 {
-        *self as u32
-    }
-}
-
-fn test<T,U>(_: T, _: U, t_size: uint, u_size: uint)
-where T : Convert<U>
-{
-    assert_eq!(mem::size_of::<T>(), t_size);
-    assert_eq!(mem::size_of::<U>(), u_size);
-}
-
-fn main() {
-    // T = i16, U = u32
-    test(22, 44,  2, 4);
-}
diff --git a/src/test/run-pass/traits-multidispatch-infer-convert-target.rs b/src/test/run-pass/traits-multidispatch-infer-convert-target.rs
index 54515f3b0d7..532ef7cbec6 100644
--- a/src/test/run-pass/traits-multidispatch-infer-convert-target.rs
+++ b/src/test/run-pass/traits-multidispatch-infer-convert-target.rs
@@ -36,11 +36,10 @@ where T : Convert<U>
 }
 
 fn main() {
+    use std::default::Default;
     // T = i16, U = u32
-    test(22_i16, 44,  2, 4);
-    test(22, 44_u32, 2, 4);
+    test(22_i16, Default::default(),  2, 4);
 
     // T = u32, U = i16
-    test(22_u32, 44, 4, 2);
-    test(22, 44_i16, 4, 2);
+    test(22_u32, Default::default(), 4, 2);
 }