[rust-dev] A couple of tweaks to make typeclasses easier?

Niko Matsakis niko at alum.mit.edu
Thu Jan 26 20:27:36 PST 2012


On 1/26/12 6:10 PM, Graydon Hoare wrote:
> Depends what it means! Does it pull in the same stuff that "import 
> foo::*" pulls in, in addition to impls? Or just impls? IWO, do I have 
> to double the number of boilerplate lines to get access to 
> foo-and-its-methods?

One thing: I think a lot of the uses of record type + impl in our code 
base might be better phrased as classes.  This would obviate the need to 
pull in an implementation for type "foo" most of the time.  It does 
strike me as somewhat non-obvious where methods are coming from today, 
particularly when "foo::*" is used.

> What was the error message? I'm not trying to be a pain, just 
> concerned that a proliferation of -> symbols through much of our code 
> will read poorly, and want to try to avoid.

The error message in question says something like "no method 
implementation found", even in cases where there is clearly no method 
call.  It ought to be changed, probably to something like "no field or 
method found".

As for "." vs "->", I don't have a very strong opinion.  I somewhat like 
that fields and methods would be in disjoint namespaces, but I can also 
see a counter argument that "->" is not as pretty.


Niko



More information about the Rust-dev mailing list