The author of the question
Exchanging type parameters with abstract types wrote a =>
at the beginning of his class definitions. Example:
abstract class Thing { t =>
type A
type G <: Group { type A = t.A }
val group: G
}
What does the t =>
mean ?
Because this is hard to find in Google & Co, can someone please give me more background information or provide a link, where I can find more information about this language construct ?
The default naming for class itself is
this
. You may replace it witht
byt =>
It is useful if your class contains subclasses and you need access to enclosing self reference.
Without
t =>
in your example you would write something like this:Group { type A = this.A }
is a subtype sothis
would reference to group specialization itself not to a thing object. Probably you get not what you mean to get. If you need access to Thing self reference you should resolve name conflict by assigning self reference another name