Size: a a a

Scala User Group

2020 June 09

λ

λoλegΥch in Scala User Group
досихпор не получили ответа почему "не работает"
источник

AS

Artem Seleznev in Scala User Group
Oleg ℕizhnik
Что за курс?
Functional Program Design in Scala
источник

AS

Artem Seleznev in Scala User Group
Simon
возможно требуется указать наличие синтетического метода
спасибо за ответ, но не принимает за правильный
источник

AS

Artem Seleznev in Scala User Group
спасибо, но нет(
источник

VE

Vasiliy Efimov in Scala User Group
Что пишет то?
источник

AS

Artem Seleznev in Scala User Group
Vasiliy Efimov
Что пишет то?
это ошибка курса - Rewrite the last line as it is rewritten by the compiler
источник

VE

Vasiliy Efimov in Scala User Group
Вариант из SIP-13 тоже не сработал?
источник

λ

λoλegΥch in Scala User Group
помоему курс поломатый
источник

S

Simon in Scala User Group
ок, предположим, что курс составляли идиоты и они забыли extends AnyVal
тогда ответ HasIsEven.isEven(42)
источник

λ

λoλegΥch in Scala User Group
анивал не нужен
источник

VE

Vasiliy Efimov in Scala User Group
Simon
ок, предположим, что курс составляли идиоты и они забыли extends AnyVal
тогда ответ HasIsEven.isEven(42)
extends anyval не обязательно же, это просто хорошая практика
источник

λ

λoλegΥch in Scala User Group
и ответ нне меняется
источник

AS

Artem Seleznev in Scala User Group
Simon
ок, предположим, что курс составляли идиоты и они забыли extends AnyVal
тогда ответ HasIsEven.isEven(42)
нет(
источник

S

Simon in Scala User Group
λoλegΥch
и ответ нне меняется
-Xprint:typer с этим не согласен
источник

λ

λoλegΥch in Scala User Group
а чо не сразу ассембли смотреть?
источник

AS

Andrey Sugak in Scala User Group
Simon
-Xprint:typer с этим не согласен
final implicit class HasIsEven extends scala.AnyVal {
     <paramaccessor> private[this] val n: Int = _;
     def <init>(n: Int): A.HasIsEven = {
       HasIsEven.super.<init>();
       ()
     };
     def isEven: Boolean = HasIsEven.this.n.%(2).==(0);
     override <synthetic> def hashCode(): Int = HasIsEven.this.<<none>: error>.<hashCode: error>;
     override <synthetic> def equals(x$1: Any): Boolean = x$1 match {
 case (_: A.HasIsEven) => true
 case _ => false
}.&&({
       <synthetic> val HasIsEven$1: A.HasIsEven = x$1.asInstanceOf[A.HasIsEven];
       HasIsEven.this.<<none>: error>.<<none>: error>(HasIsEven$1.<<none>: error>)
     })
   };
   implicit <synthetic> def HasIsEven(n: Int): A.HasIsEven = new HasIsEven(n);
   <synthetic> object HasIsEven extends AnyRef {
     def <init>(): A.HasIsEven.type = {
       HasIsEven.super.<init>();
       ()
     }
   };
   A.this.HasIsEven(42).isEven
источник

VE

Vasiliy Efimov in Scala User Group
λoλegΥch
а чо не сразу ассембли смотреть?
Тоже подумал, мб байт-код хотят
источник

S

Simon in Scala User Group
λoλegΥch
а чо не сразу ассембли смотреть?
да, забыл - не typer
источник

AS

Artem Seleznev in Scala User Group
Понял Вас. Буду писать организаторам курса, так как ясно, что попытки были правильные. (вся специализация закрыта, а из-за этого вопроса не дают завершить)

За эту штуку спасибо!
-Xprint:typer
источник

S

Simon in Scala User Group
в общем с extend AnyVal:
     18: invokevirtual #26                 // Method HasIsEven:(I)I
     21: invokevirtual #30                 // Method tmp$HasIsEven$.isEven$extension:(I)Z


без extends AnyVal:
      15: invokevirtual #22                 // Method HasIsEven:(I)Ltmp$HasIsEven;
     18: invokevirtual #26                 // Method tmp$HasIsEven.isEven:()Z
источник