-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Compiler crash: Implicit Function types + SAM #4611
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
Woah, nice simplification! Also, my dotty version was |
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Jun 5, 2018
An abstract method definition def m(xs: Ts): IF is expanded to: def m(xs: Ts): IF = implicit (ys: Us) => m$direct(xs)(ys) def m$direct(xs: Ts)(ys: Us): R An overriding method definition override def m(xs: Ts): IF = implicit (ys: Us) => E is expanded to: def m$direct(xs: Ts)(ys: Us): R = E
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Jun 26, 2018
class and trait with a single abstract method which result type is an implicit function type are not considered SAM types anymore. The reason is because the abstract member desugar to mutiple ones. E.g. ```scala trait Foo { def foo(): implicit Int => Int } // becomes trait Foo { def foo(): implicit Int => Int def foo$direct(implicit x: Int): Int } ```
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Jul 13, 2018
class and trait with a single abstract method which result type is an implicit function type are not considered SAM types anymore. The reason is because the abstract member desugar to mutiple ones. E.g. ```scala trait Foo { def foo(): implicit Int => Int } // becomes trait Foo { def foo(): implicit Int => Int def foo$direct(implicit x: Int): Int } ```
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Jul 18, 2018
class and trait with a single abstract method which result type is an implicit function type are not considered SAM types anymore. The reason is because the abstract member desugar to mutiple ones. E.g. ```scala trait Foo { def foo(): implicit Int => Int } // becomes trait Foo { def foo(): implicit Int => Int def foo$direct(implicit x: Int): Int } ```
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Aug 3, 2018
class and trait with a single abstract method which result type is an implicit function type are not considered SAM types anymore. The reason is because the abstract member desugar to mutiple ones. E.g. ```scala trait Foo { def foo(): implicit Int => Int } // becomes trait Foo { def foo(): implicit Int => Int def foo$direct(implicit x: Int): Int } ```
allanrenucci
added a commit
to dotty-staging/dotty
that referenced
this issue
Aug 20, 2018
class and trait with a single abstract method which result type is an implicit function type are not considered SAM types anymore. The reason is because the abstract member desugar to mutiple ones. E.g. ```scala trait Foo { def foo(): implicit Int => Int } // becomes trait Foo { def foo(): implicit Int => Int def foo$direct(implicit x: Int): Int } ```
allanrenucci
added a commit
that referenced
this issue
Aug 20, 2018
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Initially reported by @jeffmay on Gitter
The text was updated successfully, but these errors were encountered: