Баг типизации
От: _nn_ www.nemerleweb.com
Дата: 02.02.11 13:46
Оценка:
В lib\internal-numbered.n имеем следующий код:
public abstract class Function ['p1, 'r]
{
  public static @|> (a : 'p1, fac : 'p1 -> 'r) : 'r
  {
    fac(a)
  }    

  public static @|> (a : 'p1, fac : 'p1 -> void) : void
  {
    fac(a)
  }    
  ...
}


Следующий код работает
def f(a) { a }
def x = 1 |> f;


Однако с котрежами код не компилируется
def f(a, b) { a + b }
def x = (1, 2) |> f;

1:15:1:20: error: typing fails on finding the operator op_Addition(?, ?)


Но достаточно указать тип функции где-нибудь, то все собирается
def f(a, b) { a + b : int }
def x = (1, 2) |> f;
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.