roc/test/snapshots
Richard Feldman 083197e4ac
Fix tests
2025-11-21 20:04:32 -05:00
..
comprehensive More number fixes 2025-11-20 00:06:05 -05:00
eval More number fixes 2025-11-20 00:06:05 -05:00
expr Fix some more eval stuff 2025-11-21 09:31:39 -05:00
file more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
formatting Fix custom number type tests 2025-11-21 12:52:04 -05:00
fuzz_crash Merge remote-tracking branch 'origin/main' into poly-numbers 2025-11-21 19:49:07 -05:00
if_then_else More number fixes 2025-11-20 00:06:05 -05:00
issue More number fixes 2025-11-20 00:06:05 -05:00
lambda_capture More number fixes 2025-11-20 00:06:05 -05:00
match_expr Merge remote-tracking branch 'origin/main' into poly-numbers 2025-11-21 19:49:07 -05:00
nominal Fix custom number type tests 2025-11-21 12:52:04 -05:00
numeric_edge_cases More number fixes 2025-11-20 00:06:05 -05:00
pass More number fixes 2025-11-20 00:06:05 -05:00
platform wip 2025-11-19 09:48:01 -05:00
plume_package Use static dispatch for arithmetic 2025-11-19 12:29:55 -05:00
primitive More number fixes 2025-11-20 00:06:05 -05:00
records Merge remote-tracking branch 'origin/main' into poly-numbers 2025-11-21 19:49:07 -05:00
repl Don't special-case Bool rendering 2025-11-21 09:59:59 -05:00
some_folder Fix regression in checking module type 2025-11-18 07:56:25 -05:00
statement More number fixes 2025-11-20 00:06:05 -05:00
static_dispatch More number fixes 2025-11-20 00:06:05 -05:00
todo_cross_module_calls Disable a test for now 2025-10-24 21:03:22 -04:00
type_checking Finish implementing from_num_literal 2025-11-21 16:31:57 -05:00
type_module More number fixes 2025-11-20 00:06:05 -05:00
where_clause Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
001.md
add_var_with_spaces.md Fix parallel execution 2025-11-17 16:48:50 -05:00
annotations.md More number fixes 2025-11-20 00:06:05 -05:00
app_header__nonempty_multiline.md
app_header__nonempty_multiline__commented.md
app_header__nonempty_multiline__trailing_comma.md
app_header__platform_not_first.md
app_header_nonempty_singleline.md
binop_omnibus__single__no_spaces.md Fix some more eval stuff 2025-11-21 09:31:39 -05:00
binop_omnibus__singleline.md Fix some more eval stuff 2025-11-21 09:31:39 -05:00
binops.md Fix some more eval stuff 2025-11-21 09:31:39 -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 Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
can_basic_scoping.md More number fixes 2025-11-20 00:06:05 -05:00
can_dot_access.md
can_dot_access_with_vars.md More number fixes 2025-11-20 00:06:05 -05:00
can_frac_literal.md More number fixes 2025-11-20 00:06:05 -05:00
can_hex_integer.md More number fixes 2025-11-20 00:06:05 -05:00
can_import_comprehensive.md Fix parallel execution 2025-11-17 16:48:50 -05:00
can_import_exposing_types.md Improve some error messages 2025-11-18 08:04:42 -05:00
can_import_json.md
can_import_nested_modules.md more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
can_import_type_annotations.md Fix parallel execution 2025-11-17 16:48:50 -05:00
can_import_unresolved_qualified.md Fix parallel execution 2025-11-17 16:48:50 -05:00
can_import_with_alias.md Fix parallel execution 2025-11-17 16:48:50 -05:00
can_list_first_concrete.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_heterogeneous.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_mismatch_then_nested_error.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_multiline_mismatch.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_nested_heterogeneous.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_number_doesnt_fit.md Finish implementing from_num_literal 2025-11-21 16:31:57 -05:00
can_list_rest_types.md
can_list_triple_nested_heterogeneous.md More number fixes 2025-11-20 00:06:05 -05:00
can_list_two_elements.md More number fixes 2025-11-20 00:06:05 -05:00
can_nested_heterogeneous_lists.md More number fixes 2025-11-20 00:06:05 -05:00
can_two_decls.md More number fixes 2025-11-20 00:06:05 -05:00
can_var_scoping_invalid_top_level.md More number fixes 2025-11-20 00:06:05 -05:00
can_var_scoping_regular_var.md
can_var_scoping_var_idents.md More number fixes 2025-11-20 00:06:05 -05:00
can_var_scoping_var_redeclaration.md More number fixes 2025-11-20 00:06:05 -05:00
crash_and_ellipsis_test.md wip 2025-11-19 09:48:01 -05:00
def_simple_with_annotation.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
default_app_no_main.md More number fixes 2025-11-20 00:06:05 -05:00
default_app_wrong_arity.md Fix regression in checking module type 2025-11-18 07:56:25 -05:00
effectful_with_effectful_annotation.md Fix parallel execution 2025-11-17 16:48:50 -05:00
exposed_items_test.md More number fixes 2025-11-20 00:06:05 -05:00
expr_ident_simple.md
expr_if_missing_else.md Fix tests 2025-11-21 20:04:32 -05:00
expr_int_invalid.md
expr_int_negative.md More number fixes 2025-11-20 00:06:05 -05:00
expr_int_simple.md More number fixes 2025-11-20 00:06:05 -05:00
expr_no_space_dot_int.md
external_decl_lookup.md
external_lookup_expr.md Fix an error message regression 2025-10-30 18:47:48 -04:00
fib_module.md More number fixes 2025-11-20 00:06:05 -05:00
file_multiple_type_decls.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
function_no_annotation.md More number fixes 2025-11-20 00:06:05 -05:00
header_expected_open_bracket.md
hello_world.md
hello_world.roc
hello_world_with_block.md
import_exposing_alias.md
import_exposing_basic.md Fix parallel execution 2025-11-17 16:48:50 -05:00
lambda_annotation_mismatch_error.md Finish implementing from_num_literal 2025-11-21 16:31:57 -05:00
lambda_currying_constraint.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
lambda_in_collection.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
lambda_multi_arg_mismatch.md More number fixes 2025-11-20 00:06:05 -05:00
lambda_parameter_unused.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
lambda_ret_constraint_bug.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
let_polymorphism_complex.md More number fixes 2025-11-20 00:06:05 -05:00
let_polymorphism_error.md More number fixes 2025-11-20 00:06:05 -05:00
let_polymorphism_expr.md More number fixes 2025-11-20 00:06:05 -05:00
let_polymorphism_lists.md More number fixes 2025-11-20 00:06:05 -05:00
let_polymorphism_numbers.md More number fixes 2025-11-20 00:06:05 -05:00
let_polymorphism_records.md More number fixes 2025-11-20 00:06:05 -05:00
module_empty.md
module_multiline_with_comments.md more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
module_nonempty_single.md
module_singleline_fmts_to_multiline.md
multi_qualified_import.md Fix an error message regression 2025-10-30 18:47:48 -04:00
multiline_binop_1.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_list_formatting_5.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_list_formatting_7.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_list_formatting_11.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_list_formatting_14.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_string_complex.md More number fixes 2025-11-20 00:06:05 -05:00
multiline_string_expr.md
nominal_type_origin_mismatch.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
numbers.md More number fixes 2025-11-20 00:06:05 -05:00
package_empty.md
package_header_nonempty_multiline_1.md
package_header_nonempty_multiline_3.md
package_header_nonempty_multiline_4.md
package_header_nonempty_multiline_6.md
package_header_nonempty_singleline_1.md
pattern_f64_overflow.md
pure_annotation_effectful_body_error.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
pure_with_pure_annotation.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
qualified_tag.md
qualified_type_canonicalization.md more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
qualified_with_anno.md
README.md
record_access_multiline_formatting_1.md
record_access_multiline_formatting_4.md
rigid_var_instantiation.md
rigid_var_no_instantiation_error.md Improve some error messages 2025-11-18 08:04:42 -05:00
simple_external_lookup.md Fix snapshots 2025-11-17 10:27:09 -05:00
simple_lambda_constraint_success.md wip 2025-11-19 09:48:01 -05:00
simple_module_no_blanks.md
statement_annotations.md Fix record regression & add back ext vars 2025-11-09 09:41:14 -05:00
static_dispatch_super_test.md
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
string_multiline_formatting_(due_to_templating_not_multiline_string_literal)_3.md
string_unicode_emoji.md
syntax_grab_bag.md Fix some more eval stuff 2025-11-21 09:31:39 -05:00
test_exact_pattern_crash.md More number fixes 2025-11-20 00:06:05 -05:00
test_headerless_main.md More number fixes 2025-11-20 00:06:05 -05:00
test_instantiated_arg_mismatch.md More number fixes 2025-11-20 00:06:05 -05:00
test_instantiated_return_crash.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
test_instantiation_arity_mismatch.md More number fixes 2025-11-20 00:06:05 -05:00
test_nested_instantiation_crash.md Fix record regression & add back ext vars 2025-11-09 09:41:14 -05:00
test_tuple_instantiation_crash.md More number fixes 2025-11-20 00:06:05 -05:00
try_err_or_lookup.md Test nested ZSTs 2025-11-17 11:35:38 -05:00
try_ok_or_lookup.md Test nested ZSTs 2025-11-17 11:35:38 -05:00
type_alias_decl.md More number fixes 2025-11-20 00:06:05 -05:00
type_alias_parameterized.md More number fixes 2025-11-20 00:06:05 -05:00
type_alias_simple.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_alias_tag_union.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_anno_connection.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_annotation_basic.md wip 2025-11-19 09:48:01 -05:00
type_annotation_missing_parens.md more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
type_annotations.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_app_complex_nested.md Fix some more stuff 2025-11-17 22:35:41 -05:00
type_app_multiple_args.md Improve some error messages 2025-11-18 08:04:42 -05:00
type_app_nested.md Fix some more stuff 2025-11-17 22:35:41 -05:00
type_app_single_arg.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_app_with_vars.md More number fixes 2025-11-20 00:06:05 -05:00
type_application_basic.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_builtin.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_comprehensive_scope.md Update snapshots 2025-11-17 19:00:13 -05:00
type_declarations.md
type_function_basic.md Fix let polymorphism + out of order dispatch 2025-11-09 09:36:57 -05:00
type_function_effectful.md Fix let polymorphism + out of order dispatch 2025-11-09 09:36:57 -05:00
type_function_multi_arg.md Fix let polymorphism + out of order dispatch 2025-11-09 09:36:57 -05:00
type_function_simple.md Fix let polymorphism + out of order dispatch 2025-11-09 09:36:57 -05:00
type_higher_order_multiple_vars.md Fix let polymorphism + out of order dispatch 2025-11-09 09:36:57 -05:00
type_local_scope_vars.md Fix scoped type variables 2025-11-09 09:41:14 -05:00
type_multiple_aliases.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_record_basic.md More number fixes 2025-11-20 00:06:05 -05:00
type_record_effectful.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_record_simple.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
type_record_with_vars.md
type_redeclaration_same_scope.md
type_same_var_multiple_uses.md
type_scope_integration.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_shadowing_across_scopes.md more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
type_simple_pure.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_simple_type_var.md
type_tag_union_basic.md Fix some more stuff 2025-11-17 22:35:41 -05:00
type_tag_union_complex.md Fix some more stuff 2025-11-17 22:35:41 -05:00
type_two_variables.md
type_undeclared_usage.md Revise how external nominals work 2025-10-25 11:17:49 -04:00
type_var_annotation_body_connection.md
type_var_basic.md
type_var_collision_simple.md More number fixes 2025-11-20 00:06:05 -05:00
type_var_mismatch.md More number fixes 2025-11-20 00:06:05 -05:00
type_var_multiple.md
type_var_name_avoids_collision.md More number fixes 2025-11-20 00:06:05 -05:00
type_var_namespace.md Fix some more stuff 2025-11-17 22:35:41 -05:00
type_var_nested.md wip 2025-11-19 09:48:01 -05:00
type_var_shadowing.md
type_var_shadowing_inner.md
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 Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
unary_minus_lambda_parameter.md Fix defaulting to Dec + unification 2025-11-19 10:31:11 -05:00
unicode_single_quotes.md Change the handling of invalid single quote to improve error messages. (#8370) 2025-11-11 13:42:35 +01:00
unused_vars_block.md More number fixes 2025-11-20 00:06:05 -05:00
unused_vars_simple.md More number fixes 2025-11-20 00:06:05 -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