open System
type Foo() =
interface Collections.IEnumerable with
member x.GetEnumerator() = null
type Bar() =
interface Collections.IEnumerable with
member x.GetEnumerator() = null
interface Collections.Generic.IEnumerable<int> with
member x.GetEnumerator() = null
let xs, ys = Foo(), Bar()
for x in xs do() // <--
for y in ys do() // fine
Код выше выдает следующую ошибку компиляции:Является ли это ошибкой компилятора F #? # 2
The type 'Foo' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method.
Код выглядит совершенно законно и общая версия работает отлично. Является ли это ошибкой компилятора F #?
Спасибо за ответ, Томас! на самом деле я нашел эту ошибку и отправлю ее на [email protected] час назад ... – ControlFlow
@ControlFlow: Ах, конечно, они исправят это быстрее, если получат два отчета за один час :-)! –