roc/test/snapshots/platform/platform_header_str_simple.md
2025-11-26 10:02:56 -05:00

1.5 KiB

META

description=Simple plaform module
type=file

SOURCE

platform ""
	requires {} { main : Str -> Str }
	exposes []
	packages {}
	provides { entrypoint: "roc__entrypoint" }

entrypoint : Str -> Str
entrypoint = main

EXPECTED

NIL

PROBLEMS

NIL

TOKENS

KwPlatform,StringStart,StringPart,StringEnd,
KwRequires,OpenCurly,CloseCurly,OpenCurly,LowerIdent,OpColon,UpperIdent,OpArrow,UpperIdent,CloseCurly,
KwExposes,OpenSquare,CloseSquare,
KwPackages,OpenCurly,CloseCurly,
KwProvides,OpenCurly,LowerIdent,OpColon,StringStart,StringPart,StringEnd,CloseCurly,
LowerIdent,OpColon,UpperIdent,OpArrow,UpperIdent,
LowerIdent,OpAssign,LowerIdent,
EndOfFile,

PARSE

(file
	(platform (name "")
		(rigids)
		(ty-record
			(anno-record-field (name "main")
				(ty-fn
					(ty (name "Str"))
					(ty (name "Str")))))
		(exposes)
		(packages)
		(provides
			(record-field (name "entrypoint")
				(e-string
					(e-string-part (raw "roc__entrypoint"))))))
	(statements
		(s-type-anno (name "entrypoint")
			(ty-fn
				(ty (name "Str"))
				(ty (name "Str"))))
		(s-decl
			(p-ident (raw "entrypoint"))
			(e-ident (raw "main")))))

FORMATTED

NO CHANGE

CANONICALIZE

(can-ir
	(d-let
		(p-assign (ident "entrypoint"))
		(e-lookup-required
			(required-ident "main"))
		(annotation
			(ty-fn (effectful false)
				(ty-lookup (name "Str") (builtin))
				(ty-lookup (name "Str") (builtin))))))

TYPES

(inferred-types
	(defs
		(patt (type "Str -> Str")))
	(expressions
		(expr (type "Str -> Str"))))