This strikes me as a good point. I think the incongruity this would create
between functions and methods -- along with the additional syntactic burden
-- could lead to the use of functions feeling second class in some sense.
Also, how would static methods be treated?

Cheers,
Tim


On Wed, Nov 20, 2013 at 8:47 PM, Tommi <rusty.ga...@icloud.com> wrote:

> On 2013-11-20, at 18:27, Patrick Walton <pcwal...@mozilla.com> wrote:
>
> On 11/19/13 9:42 PM, Tommi wrote:
>
> Our problem is that, given let arg: ~A;, seeing only foo(arg) in code
> doesn't tell us whether arg is moved or borrowed. The proposed solution
> is that auto-borrowing in that context would be deprecated and thus
> would require an explicit borrowing: foo(&*arg). Now, given that it
> seems that the upcoming UFCS would simply re-write arg.foo() to
> foo(arg), it would mean that seeing only arg.foo() in code doesn't tell
> us whether arg is moved or borrowed. Thus, the proposed solution would
> fix only half of the problem.
>
>
> Again, I don't see this as an argument against the proposal. The dot
> operator is always magical. Magic on one place doesn't justify magic
> everywhere.
>
> Patrick
>
>
> The goal of the proposal is to disambiguate code by forcing programmers to
> write foo(&*arg) instead of foo(arg). But I claim that the proposal will
> at least partly fail to achieve that goal because programmers will simply
> resort to writing arg.foo() rather than foo(&*arg), and we finish where
> we started.
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to