Я только начал использовать расширение синтаксиса with sexp
(описано here и here) в моих пользовательских типах. Тем не менее, я заметил, что когда я делаю, я получаю следующее предупреждение о моем типе:Использование 'with sexp' для типа генерирует «Предупреждение 4: это совпадение шаблонов является хрупким»
Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Sexplib.Type.t.
Я предполагающей это потому, что Sexp преобразователи, которые создаются с помощью синтаксиса with sexp
обрабатывать только конструкторы типов, определенные для Sexp (Sexp.List
и Sexp.Atom
).
Обычно я пытаюсь исправить любые предупреждения в моей компиляции; есть ли способ сделать компилятор счастливым здесь (за исключением того, что он полностью подавляет предупреждение для всех случаев)?
EDIT: для форматирования уценок.
Обновление: Предоставление примерного кода от hit.ml
.
open Core.Std
open Option.Monad_infix
open Battey.Kernel
type hit = (sentence * int) with sexp
Формирует это предупреждение:
File "hit.ml", line 6, characters 5-27: Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Sexplib.Type.t.
Дополнительная информация: Я использую версию 4.02.3 из ocamlc (в установленной через opam
) на MacBook (Yosemite), и я использую версию 113.00 .00 от core
и core_kernel
. Я также использую -w A
для своих флагов.
Извинения за задержку в обновлении; праздники держали меня подальше от моего ноутбука/интернет-соединения.
Благодарим вас за отзыв!
не могли бы вы предоставить свой код? (или просто подмножество, которое проявляет это поведение) –
Вы открыли 'Core.Std'? – ivg
@ivg yep, я открываю 'Core.Std'. Я добавил фрагмент кода. – user812376