about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-03-24 17:28:28 -0400
committerNiko Matsakis <niko@alum.mit.edu>2015-03-30 09:05:59 -0400
commit7595c25ef93bb18b5f96805daee4d1890f5b6a6b (patch)
treebe5a0987092d581a5b6170aea72d5affae0b1022
parente2b2a53d704899e5e59c943ab39fa692125233be (diff)
downloadrust-7595c25ef93bb18b5f96805daee4d1890f5b6a6b.tar.gz
rust-7595c25ef93bb18b5f96805daee4d1890f5b6a6b.zip
Add test case for #22743.
Fixes #22743.
Fixes #19035.
Fixes #22099.

(Those all seem to be exactly the same scenario.)
-rw-r--r--src/test/run-pass/binops-issue-22743.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/run-pass/binops-issue-22743.rs b/src/test/run-pass/binops-issue-22743.rs
new file mode 100644
index 00000000000..01c85023eda
--- /dev/null
+++ b/src/test/run-pass/binops-issue-22743.rs
@@ -0,0 +1,32 @@
+// Copyright 2015 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.
+
+use std::ops::Mul;
+
+#[derive(Copy)]
+pub struct Foo {
+    x: f64,
+}
+
+impl Mul<Foo> for f64 {
+    type Output = Foo;
+
+    fn mul(self, rhs: Foo) -> Foo {
+        // intentionally do something that is not *
+        Foo { x: self + rhs.x }
+    }
+}
+
+pub fn main() {
+    let f: Foo = Foo { x: 5.0 };
+    let val: f64 = 3.0;
+    let f2: Foo = val * f;
+    assert_eq!(f2.x, 8.0);
+}