roc/test/snapshots
2025-11-06 07:49:59 -05:00
..
eval Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
expr Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
file Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
formatting Add new type pretty-printing 2025-11-05 21:49:32 -05:00
fuzz_crash Add new type pretty-printing 2025-11-05 21:49:32 -05:00
if_then_else Add new type pretty-printing 2025-11-05 21:49:32 -05:00
issue Revise how external nominals work 2025-10-25 11:17:49 -04:00
lambda_capture Add new type pretty-printing 2025-11-05 21:49:32 -05:00
match_expr Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
nominal Add new type pretty-printing 2025-11-05 21:49:32 -05:00
numeric_edge_cases Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
pass Add new type pretty-printing 2025-11-05 21:49:32 -05:00
platform Revise how external nominals work 2025-10-25 11:17:49 -04:00
plume_package Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
primitive Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
records Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
repl Revert "Fix some repl tests" 2025-11-02 21:40:59 -05:00
some_folder Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
statement Add new type pretty-printing 2025-11-05 21:49:32 -05:00
static_dispatch Fix an error message regression 2025-10-30 18:47:48 -04:00
todo_cross_module_calls Disable a test for now 2025-10-24 21:03:22 -04:00
type_checking Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_module Add new type pretty-printing 2025-11-05 21:49:32 -05:00
where_clause Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
001.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
add_var_with_spaces.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
annotations.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
app_header__nonempty_multiline.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
app_header__nonempty_multiline__commented.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
app_header__nonempty_multiline__trailing_comma.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
app_header__platform_not_first.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
app_header_nonempty_singleline.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
binop_omnibus__single__no_spaces.md Fix canonicalization bug 2025-10-17 22:20:41 -04:00
binop_omnibus__singleline.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
binops.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
bool_closure_type_check.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
bound_type_var_no_annotation.md Can & check stmts 2025-10-23 20:21:12 -04:00
can_basic_scoping.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
can_dot_access.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
can_dot_access_with_vars.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
can_frac_literal.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
can_hex_integer.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
can_import_comprehensive.md More annotation-only tests 2025-10-31 11:52:11 -04:00
can_import_exposing_types.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
can_import_json.md Don't report redundant errors 2025-10-18 18:20:56 -04:00
can_import_nested_modules.md Fix an error message regression 2025-10-30 18:47:48 -04:00
can_import_type_annotations.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
can_import_unresolved_qualified.md Fix an error message regression 2025-10-30 18:47:48 -04:00
can_import_with_alias.md Don't report redundant errors 2025-10-18 18:20:56 -04:00
can_list_first_concrete.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_heterogeneous.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_mismatch_then_nested_error.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_multiline_mismatch.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_nested_heterogeneous.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_number_doesnt_fit.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_rest_types.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_triple_nested_heterogeneous.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_list_two_elements.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_nested_heterogeneous_lists.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_two_decls.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
can_var_scoping_invalid_top_level.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
can_var_scoping_regular_var.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
can_var_scoping_var_idents.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
can_var_scoping_var_redeclaration.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
crash_and_ellipsis_test.md Fix some memory leaks 2025-10-24 16:56:46 -04:00
def_simple_with_annotation.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
default_app_no_main.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
default_app_wrong_arity.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
effectful_with_effectful_annotation.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
exposed_items_test.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
expr_ident_simple.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
expr_if_missing_else.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
expr_int_invalid.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
expr_int_negative.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
expr_int_simple.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
expr_no_space_dot_int.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
external_decl_lookup.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
external_lookup_expr.md Fix an error message regression 2025-10-30 18:47:48 -04:00
fib_module.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
file_multiple_type_decls.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
function_no_annotation.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
header_expected_open_bracket.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
hello_world.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
hello_world.roc
hello_world_with_block.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
import_exposing_alias.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
import_exposing_basic.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
lambda_annotation_mismatch_error.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
lambda_currying_constraint.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
lambda_in_collection.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
lambda_multi_arg_mismatch.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
lambda_parameter_unused.md Can & check stmts 2025-10-23 20:21:12 -04:00
lambda_ret_constraint_bug.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
let_polymorphism_complex.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
let_polymorphism_error.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
let_polymorphism_expr.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
let_polymorphism_lists.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
let_polymorphism_numbers.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
let_polymorphism_records.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
module_empty.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
module_multiline_with_comments.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
module_nonempty_single.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
module_singleline_fmts_to_multiline.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
multi_qualified_import.md Fix an error message regression 2025-10-30 18:47:48 -04:00
multiline_binop_1.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
multiline_list_formatting_5.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
multiline_list_formatting_7.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
multiline_list_formatting_11.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
multiline_list_formatting_14.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
multiline_string_complex.md More fixes 2025-10-24 20:51:13 -04:00
multiline_string_expr.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
nominal_type_origin_mismatch.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
numbers.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
package_empty.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
package_header_nonempty_multiline_1.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
package_header_nonempty_multiline_3.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
package_header_nonempty_multiline_4.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
package_header_nonempty_multiline_6.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
package_header_nonempty_singleline_1.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
pattern_f64_overflow.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
pure_annotation_effectful_body_error.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
pure_with_pure_annotation.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
qualified_tag.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
qualified_type_canonicalization.md Fix an error message regression 2025-10-30 18:47:48 -04:00
qualified_with_anno.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
README.md
record_access_multiline_formatting_1.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
record_access_multiline_formatting_4.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
rigid_var_instantiation.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
rigid_var_no_instantiation_error.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
simple_external_lookup.md Clarify an error message 2025-10-30 18:59:58 -04:00
simple_lambda_constraint_success.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
simple_module_no_blanks.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
statement_annotations.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
static_dispatch_super_test.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
string.md Fix source location 2025-10-30 11:19:56 -04:00
string_multiline_formatting_(due_to_templating_not_multiline_string_literal)_1.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
string_multiline_formatting_(due_to_templating_not_multiline_string_literal)_3.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
string_unicode_emoji.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
syntax_grab_bag.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
test_exact_pattern_crash.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
test_headerless_main.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
test_instantiated_arg_mismatch.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
test_instantiated_return_crash.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
test_instantiation_arity_mismatch.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
test_nested_instantiation_crash.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
test_tuple_instantiation_crash.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_alias_decl.md Format builtin module as (builtin) in snapshots 2025-10-26 11:50:26 -04:00
type_alias_parameterized.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_alias_simple.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_alias_tag_union.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_anno_connection.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_annotation_basic.md Can & check stmts 2025-10-23 20:21:12 -04:00
type_annotation_missing_parens.md Fix a regression in duplicate definition detection 2025-10-31 20:39:16 -04:00
type_annotations.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
type_app_complex_nested.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
type_app_multiple_args.md Merge remote-tracking branch 'origin/main' into nested-builtins 2025-10-30 12:31:35 -04:00
type_app_nested.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
type_app_single_arg.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_app_with_vars.md Propagate errors correctly in function return types 2025-10-21 18:43:11 -04:00
type_application_basic.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_builtin.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_comprehensive_scope.md Merge remote-tracking branch 'origin/main' into nested-builtins 2025-10-30 12:31:35 -04:00
type_declarations.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
type_function_basic.md Revert "Fix repl" 2025-11-02 21:41:24 -05:00
type_function_effectful.md Revert "Fix repl" 2025-11-02 21:41:24 -05:00
type_function_multi_arg.md Revert "Fix repl" 2025-11-02 21:41:24 -05:00
type_function_simple.md Revert "Fix repl" 2025-11-02 21:41:24 -05:00
type_higher_order_multiple_vars.md Revert "Fix repl" 2025-11-02 21:41:24 -05:00
type_local_scope_vars.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_multiple_aliases.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_record_basic.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_record_effectful.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_record_simple.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_record_with_vars.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_redeclaration_same_scope.md Remove line/col info from snapshots by default 2025-10-16 07:00:23 -07:00
type_same_var_multiple_uses.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_scope_integration.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_shadowing_across_scopes.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_simple_pure.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_simple_type_var.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_tag_union_basic.md Format builtin module as (builtin) in snapshots 2025-10-26 11:50:26 -04:00
type_tag_union_complex.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
type_two_variables.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_undeclared_usage.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_var_annotation_body_connection.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_var_basic.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_var_collision_simple.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
type_var_multiple.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_var_name_avoids_collision.md Merge remote-tracking branch 'origin/main' into static-dispatch-nums 2025-11-06 07:49:59 -05:00
type_var_namespace.md Clarify an error message 2025-10-30 18:59:58 -04:00
type_var_nested.md Fix stray "Builtin" appeareances in output 2025-10-31 14:20:37 -04:00
type_var_shadowing.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_var_shadowing_inner.md Infer static dispatch types in check 2025-10-21 08:48:30 -04:00
type_var_underscore_conventions.md Merge remote-tracking branch 'origin/main' into nested-builtins 2025-10-30 12:31:35 -04:00
unary_minus_double_negative.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
unary_minus_lambda_parameter.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
unicode_single_quotes.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
unused_vars_block.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00
unused_vars_simple.md Add new type pretty-printing 2025-11-05 21:49:32 -05:00

Snapshots

Snapshot tests that validate compiler behavior by capturing the output of each compilation stage for specific Roc code examples.

Snapshot tests provide comprehensive validation of the compilation pipeline by showing how source code is transformed through each stage: tokenization, parsing, canonicalization, and type checking etc.

Each snapshot file contains the expected output and helps us to detect regressions when compiler behavior changes unexpectedly.

Usage

  • Generate all snapshots: zig build snapshot
  • Update specific snapshot: zig build snapshot -- <file_path>
  • Update expected from problems: zig build update-expected -- <file_path>
  • Debug REPL evaluation with trace: zig build snapshot -- <repl_snapshot.md> --trace-eval

Trace Debugging

The --trace-eval flag enables detailed interpreter tracing for debugging REPL snapshots:

# Debug build (trace support enabled by default)
zig build snapshot -- src/snapshots/repl/repl_record_field_access.md --trace-eval

Requirements:

  • Only works with REPL snapshots (type=repl)
  • Can only be used with a single snapshot file
  • Trace output is automatically enabled in debug builds
  • For release builds, use -Dtrace-eval=true to enable tracing