ocaml: phase 1+5.1 type aliases + poly_stack baseline (+3 tests, 469 / 19 baseline)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 39s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 39s
Parser: in parse-decl-type, dispatch on the post-= token:
'|' or Ctor -> sum type
'{' -> record type
otherwise -> type alias (skip to boundary)
AST (:type-alias NAME PARAMS) with body discarded. Runtime no-op since
SX has no nominal types.
poly_stack.ml baseline exercises:
module type ELEMENT = sig type t val show : t -> string end
module IntElem = struct type t = int let show x = ... end
module Make (E : ELEMENT) = struct ... use E.show ... end
module IntStack = Make(IntElem)
Demonstrates the substrate handles signature decls + abstract types +
functor parameter with sig constraint.
This commit is contained in:
@@ -807,6 +807,7 @@
|
||||
(set! result (merge result (dict mname mod-val))))))))
|
||||
((= tag "type-def") nil)
|
||||
((= tag "type-def-record") nil)
|
||||
((= tag "type-alias") nil)
|
||||
((= tag "exception-def") nil)
|
||||
((= tag "module-type-def") nil)
|
||||
((= tag "open")
|
||||
@@ -993,6 +994,9 @@
|
||||
;; type r = { x : T; y : T } — runtime no-op; records
|
||||
;; are already dynamic dicts.
|
||||
nil)
|
||||
((= tag "type-alias")
|
||||
;; type t = SomeType — runtime no-op (no nominal types).
|
||||
nil)
|
||||
((= tag "module-type-def")
|
||||
;; module type S = sig … end — no-op at runtime.
|
||||
nil)
|
||||
|
||||
Reference in New Issue
Block a user