Bunun bir hata olduğunu sanmıyorum, kafa karıştırıcı gibi görünse de, ancak derleyicinin yukarıdaki değeri birleştirme işlemini yapmasıdır.
Bölüm (olgu burada olduğu gibi) değeri, tanım, tek bir değer model değilse, yetenekli bir sentezleme tmp taze tanımlayıcı ve her biri expri sonuçlar ila
tmp <typars1… typarsn> = expr
ident1 <typars1> = expr1
…
identn <typarsn> = exprn
olduğu 14.6.3 durumları desen patının (§7) giriş tmp'una karşı derlenmesi [spec'dan].
Let (test,
Lambda (tupledArg,
Let (x, TupleGet (tupledArg, 0),
Let (_arg1, TupleGet (tupledArg, 1),
Let (x, PropertyGet (Some (_arg1), A, []), x)))),
Application (test, NewTuple (Value (3), NewRecord (foo, Value (5)))))
nedenini: Ben (bazı şeyleri bırakarak) olsun dize biçiminde
<@ let test (x:int, {A = x:int})= x in test (3, {A = 5}) @>;;
:
biz bir F # tırnak, örneğin kullanabilirsiniz, derleyici ne yaptığını görmek için "iç" x olsun.
Bunun bir hata olduğunu sanmıyorum, ancak bunun bir uyarı üretmesi daha tutarlı olur.
Daha basit örnek - 'bırak testi (x, (x, y)) = 1 ' –
Neden bu sorunun neden başarısız olduğunu bilmiyorum - bana ilginç bir problem gibi görünüyor! Bunun bir hata olduğunu düşünüyorum ve _microsoft_ dot _com_ adresinden _fsbugs_ adresine e-posta göndererek bildirebilirsiniz. –
Bir hata olup olmadığından emin değilsiniz - en yakın tanımlanmış x'e bağlanarak kapsam belirleme kurallarını takip ediyor. – plinth