FS0009: возможный неподвердиемый код

Это сообщение получается, когда:

  • используется функция, помеченная атрибутом Unverifiable ,
let n: nativeptr<bool> = NativeInterop.NativePtr.stackalloc 1
  • fixed используется выражение или
type R = { Address: int }

let useFixed (r: R) = 
    use f = fixed &r.Address
    ()
  • LayoutKind.Explicit задано в StructLayoutAttribute определении структуры
open System.Runtime.InteropServices

[<Struct; StructLayout(LayoutKind.Explicit)>]
type EmptyStruct = 
    struct end

В каждом из этих случаев компилятор предоставит следующее сообщение:

FS0009: Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'

Чтобы исправить это сообщение, можно добавить #nowarn директиву в файл исходного кода, содержащий использование, добавить <NoWarn>9</NoWarn> в файл проекта или вручную добавить --nowarn:9 в вызовы компилятора F#. Обратите внимание, что последние два механизма отключают предупреждение для всего проекта, а первый механизм отключит предупреждение только для одного файла.