Забавная ошибка компиляции
От: dsorokin Россия  
Дата: 20.04.10 11:46
Оценка:
Есть кусок кода, который приводит к ошибке компиляции

Test.n:10:16:10:31: error: expected System.Collections.Generic.IEnumerable[object+], got void in function return value: void is not a subtype of System.Collections.Generic.IEnumerable[object+]


Если поменять комментарий и убрать явную пропись IEnumerable[_] из сигнатуры функции f, то код заработает:

using System.Console;
using System.Collections.Generic;

public module Tester {

  public Test () : IEnumerable [int]
  {
    // def f ()
    def f () : IEnumerable [_]
    {
      for (mutable i = 0; i < 10; i ++)
      {
        yield i
      }
    }
    
    f ()
  }
}

foreach (i in Tester.Test())
{
  WriteLine (i)
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.