; Fieldtest cut55-5 — the cutover's core promise: no defaulted mode.
;
; An author used to the pre-cutover language (or one who forgets the
; rule) writes a bare fn-type param slot `(con List)` with no `own`/
; `borrow` wrapper. Post-#55 there is no default; the parser/checker must
; reject the bare slot and tell me to annotate a mode.
;
; Expected: ail check -> error (bare slot / missing mode), exit 1.

(module cut55_5_bare_slot_reject

  (data List
    (ctor Nil)
    (ctor Cons (con Int) (con List)))

  (fn length
    (doc "Bare param slot — no mode. Must be rejected after the cutover.")
    (type
      (fn-type
        (params (con List))
        (ret (own (con Int)))))
    (params xs)
    (body
      (match xs
        (case (pat-ctor Nil) 0)
        (case (pat-ctor Cons h t) (app + 1 (app length t)))))))
