Copy disabled (too large)
Download .txt
Showing preview only (10,150K chars total). Download the full file to get everything.
Repository: gleam-lang/gleam
Branch: main
Commit: 56c224a84420
Files: 4379
Total size: 8.4 MB
Directory structure:
gitextract_2kwl3uaf/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── actions/
│ │ ├── build-container/
│ │ │ └── action.yml
│ │ └── build-release/
│ │ └── action.yml
│ ├── dependabot.yml
│ ├── pull_request_template.md
│ └── workflows/
│ ├── ci.yaml
│ ├── release-containers.yaml
│ ├── release-nightly.yaml
│ └── release.yaml
├── .gitignore
├── .vscode/
│ └── settings.json
├── .well-known/
│ └── funding-manifest-urls
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Cargo.toml
├── Cross.toml
├── LICENCE
├── Makefile
├── README.md
├── RELEASE.md
├── benchmark/
│ └── list/
│ ├── .gitignore
│ ├── Makefile
│ ├── gleam.toml
│ ├── manifest.toml
│ ├── src/
│ │ └── list.gleam
│ └── test/
│ ├── benchmarks.gleam
│ └── list_test.gleam
├── bin/
│ └── add-nightly-suffix-to-versions.sh
├── changelog/
│ ├── v1.1.md
│ ├── v1.10.md
│ ├── v1.11.md
│ ├── v1.12.md
│ ├── v1.13.md
│ ├── v1.14.md
│ ├── v1.15.md
│ ├── v1.2.md
│ ├── v1.3.md
│ ├── v1.4.md
│ ├── v1.5.md
│ ├── v1.6.md
│ ├── v1.7.md
│ ├── v1.8.md
│ └── v1.9.md
├── compiler-cli/
│ ├── Cargo.toml
│ ├── clippy.toml
│ ├── src/
│ │ ├── add.rs
│ │ ├── beam_compiler.rs
│ │ ├── build.rs
│ │ ├── build_lock.rs
│ │ ├── cli.rs
│ │ ├── compile_package.rs
│ │ ├── config.rs
│ │ ├── dependencies/
│ │ │ ├── dependency_manager.rs
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_cli__dependencies__tests__pretty_print_major_versions_available.snap
│ │ │ │ └── gleam_cli__dependencies__tests__pretty_print_version_updates.snap
│ │ │ └── tests.rs
│ │ ├── dependencies.rs
│ │ ├── docs.rs
│ │ ├── export.rs
│ │ ├── fix.rs
│ │ ├── format.rs
│ │ ├── fs/
│ │ │ └── tests.rs
│ │ ├── fs.rs
│ │ ├── hex/
│ │ │ └── auth.rs
│ │ ├── hex.rs
│ │ ├── http.rs
│ │ ├── lib.rs
│ │ ├── lsp.rs
│ │ ├── new/
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_cli__new__tests__new_with_default_template@src__my_project.gleam.snap
│ │ │ │ ├── gleam_cli__new__tests__new_with_default_template@test__my_project_test.gleam.snap
│ │ │ │ ├── gleam_cli__new__tests__new_with_javascript_template@src__my_project.gleam.snap
│ │ │ │ └── gleam_cli__new__tests__new_with_javascript_template@test__my_project_test.gleam.snap
│ │ │ └── tests.rs
│ │ ├── new.rs
│ │ ├── owner.rs
│ │ ├── panic.rs
│ │ ├── publish.rs
│ │ ├── remove.rs
│ │ ├── run.rs
│ │ ├── shell.rs
│ │ └── text_layout.rs
│ ├── templates/
│ │ ├── erlang-shipment-entrypoint.ps1
│ │ ├── erlang-shipment-entrypoint.sh
│ │ └── gleam@@compile.erl
│ └── test/
│ └── hello_world/
│ ├── .gitignore
│ ├── gleam.toml
│ └── manifest.toml
├── compiler-core/
│ ├── Cargo.toml
│ ├── clippy.toml
│ ├── src/
│ │ ├── analyse/
│ │ │ ├── imports.rs
│ │ │ ├── name.rs
│ │ │ └── tests.rs
│ │ ├── analyse.rs
│ │ ├── ast/
│ │ │ ├── constant.rs
│ │ │ ├── tests.rs
│ │ │ ├── typed.rs
│ │ │ ├── untyped.rs
│ │ │ └── visit.rs
│ │ ├── ast.rs
│ │ ├── ast_folder.rs
│ │ ├── bit_array.rs
│ │ ├── build/
│ │ │ ├── elixir_libraries.rs
│ │ │ ├── module_loader/
│ │ │ │ └── tests.rs
│ │ │ ├── module_loader.rs
│ │ │ ├── native_file_copier/
│ │ │ │ └── tests.rs
│ │ │ ├── native_file_copier.rs
│ │ │ ├── package_compiler/
│ │ │ │ ├── snapshots/
│ │ │ │ │ ├── gleam_core__build__package_compiler__tests__different_packages_defining_duplicate_module.snap
│ │ │ │ │ └── gleam_core__build__package_compiler__tests__same_package_defining_duplicate_module.snap
│ │ │ │ └── tests.rs
│ │ │ ├── package_compiler.rs
│ │ │ ├── package_loader/
│ │ │ │ └── tests.rs
│ │ │ ├── package_loader.rs
│ │ │ ├── project_compiler.rs
│ │ │ ├── telemetry.rs
│ │ │ └── tests.rs
│ │ ├── build.rs
│ │ ├── call_graph/
│ │ │ └── into_dependency_order_tests.rs
│ │ ├── call_graph.rs
│ │ ├── codegen.rs
│ │ ├── config/
│ │ │ └── stale_package_remover.rs
│ │ ├── config.rs
│ │ ├── dep_tree.rs
│ │ ├── dependency.rs
│ │ ├── derivation_tree.rs
│ │ ├── diagnostic.rs
│ │ ├── docs/
│ │ │ ├── printer.rs
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__docs__tests__canonical_link.snap
│ │ │ │ ├── gleam_core__docs__tests__constructor_with_long_types_and_many_fields.snap
│ │ │ │ ├── gleam_core__docs__tests__constructor_with_long_types_and_many_fields_that_need_splitting.snap
│ │ │ │ ├── gleam_core__docs__tests__discarded_arguments_are_not_shown.snap
│ │ │ │ ├── gleam_core__docs__tests__docs_of_a_type_constructor_are_not_used_by_the_following_function.snap
│ │ │ │ ├── gleam_core__docs__tests__function_uses_reexport_of_internal_type.snap
│ │ │ │ ├── gleam_core__docs__tests__function_uses_reexport_of_internal_type_in_other_module.snap
│ │ │ │ ├── gleam_core__docs__tests__generated_type_variables.snap
│ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_do_not_take_into_account_other_definitions.snap
│ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_mixed_with_existing_variables.snap
│ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_with_existing_variables_coming_afterwards.snap
│ │ │ │ ├── gleam_core__docs__tests__hello_docs.snap
│ │ │ │ ├── gleam_core__docs__tests__highlight_constant_definition.snap
│ │ │ │ ├── gleam_core__docs__tests__highlight_custom_type.snap
│ │ │ │ ├── gleam_core__docs__tests__highlight_function_definition.snap
│ │ │ │ ├── gleam_core__docs__tests__highlight_opaque_custom_type.snap
│ │ │ │ ├── gleam_core__docs__tests__highlight_type_alias.snap
│ │ │ │ ├── gleam_core__docs__tests__ignored_argument_is_called_arg.snap
│ │ │ │ ├── gleam_core__docs__tests__internal_definitions_are_not_included.snap
│ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_different_module.snap
│ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module.snap
│ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter.snap
│ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter_colours.snap
│ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module.snap
│ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module.snap
│ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module_with_shared_path.snap
│ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_package.snap
│ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_same_module.snap
│ │ │ │ ├── gleam_core__docs__tests__long_function_with_no_arguments_parentheses_are_not_split.snap
│ │ │ │ ├── gleam_core__docs__tests__long_function_wrapping.snap
│ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_function_comment_is_trimmed.snap
│ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_module_comment_is_trimmed.snap
│ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_standalone_pages_is_not_trimmed.snap
│ │ │ │ ├── gleam_core__docs__tests__no_hex_publish.snap
│ │ │ │ ├── gleam_core__docs__tests__no_link_to_type_in_git_dependency.snap
│ │ │ │ ├── gleam_core__docs__tests__no_link_to_type_in_path_dependency.snap
│ │ │ │ ├── gleam_core__docs__tests__no_links_to_prelude_types.snap
│ │ │ │ ├── gleam_core__docs__tests__output_of_search_data_json.snap
│ │ │ │ ├── gleam_core__docs__tests__print_qualified_names_from_other_modules.snap
│ │ │ │ ├── gleam_core__docs__tests__print_type_variables_in_function_signatures.snap
│ │ │ │ ├── gleam_core__docs__tests__public_type_reexport_in_different_internal_module.snap
│ │ │ │ ├── gleam_core__docs__tests__search_item_for_constant.snap
│ │ │ │ ├── gleam_core__docs__tests__search_item_for_custom_type.snap
│ │ │ │ ├── gleam_core__docs__tests__search_item_for_function.snap
│ │ │ │ ├── gleam_core__docs__tests__search_item_for_type_alias.snap
│ │ │ │ ├── gleam_core__docs__tests__tables.snap
│ │ │ │ └── gleam_core__docs__tests__use_reexport_from_other_package.snap
│ │ │ ├── source_links.rs
│ │ │ └── tests.rs
│ │ ├── docs.rs
│ │ ├── encryption.rs
│ │ ├── erlang/
│ │ │ ├── pattern.rs
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__erlang__tests__allowed_string_escapes.snap
│ │ │ │ ├── gleam_core__erlang__tests__binop_parens.snap
│ │ │ │ ├── gleam_core__erlang__tests__bit_pattern_shadowing.snap
│ │ │ │ ├── gleam_core__erlang__tests__block_assignment.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_imported.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_imported_qualified.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported.snap
│ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported_qualified.snap
│ │ │ │ ├── gleam_core__erlang__tests__discard_in_assert.snap
│ │ │ │ ├── gleam_core__erlang__tests__dynamic.snap
│ │ │ │ ├── gleam_core__erlang__tests__field_access_function_call.snap
│ │ │ │ ├── gleam_core__erlang__tests__field_access_function_call1.snap
│ │ │ │ ├── gleam_core__erlang__tests__float_division_by_literal_non_zero.snap
│ │ │ │ ├── gleam_core__erlang__tests__float_division_by_literal_zero.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_argument_shadowing.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_imported.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_imported_qualified.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant_imported.snap
│ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant_imported_qualified.snap
│ │ │ │ ├── gleam_core__erlang__tests__guard_variable_rewriting.snap
│ │ │ │ ├── gleam_core__erlang__tests__inline_const_pattern_option.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test0_1.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test0_2.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test0_3.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test10.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test11.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test12.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test13.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test16.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test17.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test18.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test19.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1_1.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1_2.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1_4.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1_5.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test1_6.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test2.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test20.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test21.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test22.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test23.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test3.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test5.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test6.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test8.snap
│ │ │ │ ├── gleam_core__erlang__tests__integration_test9.snap
│ │ │ │ ├── gleam_core__erlang__tests__keyword_constructors.snap
│ │ │ │ ├── gleam_core__erlang__tests__keyword_constructors1.snap
│ │ │ │ ├── gleam_core__erlang__tests__negation.snap
│ │ │ │ ├── gleam_core__erlang__tests__negation_block.snap
│ │ │ │ ├── gleam_core__erlang__tests__operator_pipe_right_hand_side.snap
│ │ │ │ ├── gleam_core__erlang__tests__positive_zero.snap
│ │ │ │ ├── gleam_core__erlang__tests__recursive_type.snap
│ │ │ │ ├── gleam_core__erlang__tests__scientific_notation.snap
│ │ │ │ ├── gleam_core__erlang__tests__tail_maybe_expr_block.snap
│ │ │ │ ├── gleam_core__erlang__tests__tuple_access_in_guard.snap
│ │ │ │ ├── gleam_core__erlang__tests__type_named_else.snap
│ │ │ │ ├── gleam_core__erlang__tests__type_named_module_info.snap
│ │ │ │ ├── gleam_core__erlang__tests__variable_name_underscores_preserved.snap
│ │ │ │ └── gleam_core__erlang__tests__windows_file_escaping_bug.snap
│ │ │ ├── tests/
│ │ │ │ ├── assert.rs
│ │ │ │ ├── bit_arrays.rs
│ │ │ │ ├── case.rs
│ │ │ │ ├── conditional_compilation.rs
│ │ │ │ ├── consts.rs
│ │ │ │ ├── custom_types.rs
│ │ │ │ ├── documentation.rs
│ │ │ │ ├── echo.rs
│ │ │ │ ├── external_fn.rs
│ │ │ │ ├── functions.rs
│ │ │ │ ├── guards.rs
│ │ │ │ ├── inlining.rs
│ │ │ │ ├── let_assert.rs
│ │ │ │ ├── numbers.rs
│ │ │ │ ├── panic.rs
│ │ │ │ ├── patterns.rs
│ │ │ │ ├── pipes.rs
│ │ │ │ ├── prelude.rs
│ │ │ │ ├── records.rs
│ │ │ │ ├── reserved.rs
│ │ │ │ ├── snapshots/
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operator_with_side_effects.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operator_with_side_effects2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_function_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_function_call2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_literal.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_nested_function_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_variable.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_with_block_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_with_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array4.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array5.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_declare_and_use_var.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_discard.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_discard1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_float.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_constant_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_pattern_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__block_in_pattern_size.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__discard_utf8_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__non_byte_aligned_size_calculation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pattern_match_utf16_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pattern_match_utf32_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pipe_size_segment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_bit_array_1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_bit_array_2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_character_encoding_in_bit_array_pattern_segment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__utf16_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__utf32_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__aliased_string_prefix_pattern_referenced_in_guard.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__alternative_patter_with_string_alias.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__alternative_pattern_variable_rewriting.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__negative_zero_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__not.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__not_two.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__positive_zero_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__spread_empty_list.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__case__spread_empty_list_assigning.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__conditional_compilation__excluded_attribute_syntax.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__conditional_compilation__included_attribute_syntax.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__const_generalise.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__const_type_variable.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend_from_other_module.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend_literal.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_private_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_record_with_nested_private_function_field.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_record_with_private_function_field.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__record_constructor.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__record_constructor_in_tuple.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_internal.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_list.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_tuple.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_qualified_pub_const_equal_to_record_with_private_function_field.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_unqualified_pub_const_equal_to_private_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_unqualified_pub_const_equal_to_record_with_private_function_field.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__annotated_external_type.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__annotated_external_type_used_in_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__phantom.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__unused_opaque_constructor_is_generated_correctly.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__backslashes_are_escaped_in_module_comment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__backslashes_in_documentation_are_escaped.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__double_quotes_are_escaped_in_module_comment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__function_with_documentation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__function_with_multiline_documentation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__internal_function_has_no_documentation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__multi_line_module_comment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__quotes_in_documentation_are_escaped.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__documentation__single_line_module_comment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_in_a_pipeline.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_in_a_pipeline_with_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_block.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_case_expression.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_function_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_function_call_and_a_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_panic.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_simple_expression.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_simple_expression_and_a_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_complex_expression_as_a_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__multiple_echos_in_a_pipeline.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__multiple_echos_inside_expression.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__pipeline_printed_by_echo_is_wrapped_in_begin_end_block.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__echo__record_update_printed_by_echo_is_wrapped_in_begin_end_block.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__attribute_erlang.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__attribute_javascript.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__both_externals_no_valid_impl.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__discarded_arg_in_external_are_passed_correctly.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__elixir.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__erlang_and_javascript.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_parameter_erlang.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_parameter_javascript.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_return_erlang.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_return_javascript.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__inlining_external_functions_from_another_module.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__integration_test1_3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__integration_test7.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__javascript_only.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__javascript_only_indirect.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__multiple_discarded_args_in_external_are_passed_correctly.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__multiple_discarded_args_in_external_are_passed_correctly_2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_body.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_body_or_implementation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_gleam_impl_no_annotations_function_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_target_supported_function_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_type_annotation_for_parameter.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_type_annotation_for_return.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private_external_function_calls.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private_local_function_references.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__public_elixir.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__public_local_function_calls.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__reference_to_imported_elixir_external_fn.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__unqualified_inlining_external_functions_from_another_module.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__unqualified_reference_to_imported_elixir_external_fn.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__function_as_value.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__function_called.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__labelled_argument_ordering.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_aliased_imported_function_as_value.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_aliased_imported_function_called.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_imported_function_as_value.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_imported_function_called.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_unqualified_imported_function_as_value.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_unqualified_imported_function_called.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__functions__unused_private_functions.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards20.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards21.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards22.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards23.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards24.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards25.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards26.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards27.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards28.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards29.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards30.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards31.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards32.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_10.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_4.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_5.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_6.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_7.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_8.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_9.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__constants_in_guards.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__constants_in_guards1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__field_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_list_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_nested_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_string_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_tuple_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__nested_record_access.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__blocks_get_preserved_when_needed.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__blocks_get_preserved_when_needed2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__do_not_inline_parameters_that_have_side_effects.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__do_not_inline_parameters_used_more_than_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_anonymous_function_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_anonymous_function_in_pipe.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_capture_in_pipe.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_which_calls_other_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use_and_anonymous.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use_becomes_tail_recursive.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function_anonymous.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function_with_capture.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_shadowed_variable.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_shadowed_variable_nested.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowed_in_case_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowing_case_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowing_parameter.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inlining_works_properly_with_record_updates.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inlining_works_through_blocks.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__inlining__parameters_from_nested_functions_are_correctly_inlined.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__assignment_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_discard.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_float.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_int.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_string.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__constructor_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__constructor_pattern_with_multiple_variables.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__discard_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__float_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__int_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__just_variable.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__let_assert_at_end_of_block.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__let_assert_should_not_use_redefined_variable.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__list_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__list_pattern_with_multiple_variables.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__more_than_one_var.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__one_var.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__pattern_let.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__reference_earlier_segment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_prefix_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_prefix_pattern_with_prefix_binding.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__tuple_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__variable_message.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__variable_rewrites.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__int_negation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_scientific_notation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__repeated_int_negation.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__numbers__zero_b_in_hex.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__panic__panic_as.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__panic__panic_as_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__panic__piped.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__panic__piped_chain.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__panic__plain.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__pattern_as.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_assertion.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_list.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_multiple_subjects.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_multiple_subjects_and_guard.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__block_expr_into_pipe.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__call_pipeline_result.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__clever_pipe_rewriting.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__clever_pipe_rewriting1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__multiple_pipes.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_case_subject.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_eq.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_list.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_record_update.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_tuple.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__basic.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__const_record_update_generic_respecialization.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__constant_record_update_with_unlabelled_fields.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__imported_qualified_constructor_as_fn_name_escape.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__long_definition_formatting.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__module_types.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__nested_record_update.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__nested_record_update_with_blocks.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__pipe_update_subject.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__private_unused_records.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_access_block.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants_parameterised_types.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants_positions_other_than_first.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_with_first_position_different_types.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessors.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_constants.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_update_with_unlabelled_fields.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates4.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__reserve_words.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__records__type_vars.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__reserved__build_in_erlang_type_escaping.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__reserved__escape_erlang_reserved_keywords_in_type_names.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__ascii_as_unicode_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_many_strings.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_many_strings_in_list.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_other_const_concat.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_string_prefix.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_string_prefix_discar.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_3_variables.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_constant.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_constant_fn.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_function_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__discard_concat_rest_pattern.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__not_unicode_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__not_unicode_escape_sequence2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__pipe_concat.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__rest_variable_rewriting.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_of_number_concat.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_not_unicode_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_escape_sequences.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_guard.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_multiple_subjects.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_not_unicode_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_shadowing.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_with_escape_sequences.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_escape_sequence_6_digits.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__todo__named.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__todo__piped.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__todo__plain.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__todo__todo_as.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__todo__todo_as_function.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_named_args_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_nested_named_args_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_nested_result_type_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_tuple_type_params_count_twice.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__nested_result_type_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__result_type_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__result_type_inferred_count_once.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__type_params__tuple_type_params_count_twice.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_1.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_2.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_3.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__use___no_callback_body.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__use___pipeline_that_returns_fn.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__anon_external_fun_name_escaping.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__blocks_are_scopes.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__discarded.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__module_const_vars.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_and_call.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_let.snap
│ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_param.snap
│ │ │ │ │ └── gleam_core__erlang__tests__variables__shadow_pipe.snap
│ │ │ │ ├── strings.rs
│ │ │ │ ├── todo.rs
│ │ │ │ ├── type_params.rs
│ │ │ │ ├── use_.rs
│ │ │ │ └── variables.rs
│ │ │ └── tests.rs
│ │ ├── erlang.rs
│ │ ├── error/
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_linux_ubuntu.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_macos_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_rebar3_linux_other.snap
│ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_rebar3_linux_ubuntu.snap
│ │ │ │ └── gleam_core__error__tests__shell_program_not_found_rebar3_macos_other.snap
│ │ │ └── tests.rs
│ │ ├── error.rs
│ │ ├── exhaustiveness/
│ │ │ ├── missing_patterns.rs
│ │ │ └── printer.rs
│ │ ├── exhaustiveness.rs
│ │ ├── fix.rs
│ │ ├── format/
│ │ │ ├── tests/
│ │ │ │ ├── asignments.rs
│ │ │ │ ├── binary_operators.rs
│ │ │ │ ├── bit_array.rs
│ │ │ │ ├── blocks.rs
│ │ │ │ ├── cases.rs
│ │ │ │ ├── conditional_compilation.rs
│ │ │ │ ├── constant.rs
│ │ │ │ ├── custom_type.rs
│ │ │ │ ├── echo.rs
│ │ │ │ ├── external_fn.rs
│ │ │ │ ├── external_types.rs
│ │ │ │ ├── function.rs
│ │ │ │ ├── guards.rs
│ │ │ │ ├── imports.rs
│ │ │ │ ├── lists.rs
│ │ │ │ ├── pipeline.rs
│ │ │ │ ├── record_update.rs
│ │ │ │ ├── tuple.rs
│ │ │ │ └── use_.rs
│ │ │ └── tests.rs
│ │ ├── format.rs
│ │ ├── graph.rs
│ │ ├── hex.rs
│ │ ├── inline.rs
│ │ ├── io/
│ │ │ └── memory.rs
│ │ ├── io.rs
│ │ ├── javascript/
│ │ │ ├── decision.rs
│ │ │ ├── expression.rs
│ │ │ ├── import.rs
│ │ │ ├── tests/
│ │ │ │ ├── assert.rs
│ │ │ │ ├── assignments.rs
│ │ │ │ ├── bit_arrays.rs
│ │ │ │ ├── blocks.rs
│ │ │ │ ├── bools.rs
│ │ │ │ ├── case.rs
│ │ │ │ ├── case_clause_guards.rs
│ │ │ │ ├── consts.rs
│ │ │ │ ├── custom_types.rs
│ │ │ │ ├── echo.rs
│ │ │ │ ├── externals.rs
│ │ │ │ ├── functions.rs
│ │ │ │ ├── generics.rs
│ │ │ │ ├── inlining.rs
│ │ │ │ ├── lists.rs
│ │ │ │ ├── modules.rs
│ │ │ │ ├── numbers.rs
│ │ │ │ ├── panic.rs
│ │ │ │ ├── prelude.rs
│ │ │ │ ├── records.rs
│ │ │ │ ├── recursion.rs
│ │ │ │ ├── results.rs
│ │ │ │ ├── snapshots/
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operator_with_side_effects.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operator_with_side_effects2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_function_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_function_call2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_literal.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_nested_function_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_nil_always_throws.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_block_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_case_rhs.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_negated_case_rhs.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_pipe_on_right.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assert__prova.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_that_always_fails.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_that_always_succeeds.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_with_multiple_variants.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__case_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__catch_all_assert.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__constant_assignments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__correct_variable_renaming_in_assigned_functions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__escaped_variables_in_constants.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__keyword_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__let_assert_nested_string_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__let_assert_string_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__module_const_var.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__module_const_var1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__nested_binding.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_argument.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_function_and_arg.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__returning_literal_subject.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__tuple_matching.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__use_discard_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__use_matching_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_renaming.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_used_in_pattern_and_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__alternative_patterns_with_variable_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__as_module_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_discard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_string.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_dynamic_slice.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_constant_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_pattern_is_treated_as_utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_pattern_match_all_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_sliced.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_string.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_string_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits_pattern_requires_v1_9.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__block_in_pattern_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_discard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_string.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_discard_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_dynamic_size_float_pattern_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_dynamic_size_pattern_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_empty_match.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_is_byte_aligned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_binary_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bits_with_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bytes.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bytes_with_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_bits_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_bytes_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_literal_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_shadowed_variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_with_other_segments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_16_bit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_aligned_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_unaligned_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bits.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bits_unaligned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bytes.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_unaligned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_value_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_pattern_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_constant_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_variable_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_variable_size_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__const_utf16.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__const_utf32.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__discard_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__dynamic_size_pattern_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__dynamic_size_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__empty.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__empty_match.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__explicit_sized_constant_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__explicit_sized_dynamic_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__integer.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_binary_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bits_with_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bytes.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bytes_with_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_case_utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_case_utf8_with_escape_chars.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_bits_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_bytes_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_literal_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_shadowed_variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_with_other_segments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_16_bit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_aligned_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_unaligned_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bits.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bits_unaligned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bytes.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_signed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_signed_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_unaligned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_value_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_unsigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_unsigned_constant_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_utf8_with_escape_chars.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__multiple_variable_size_segments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__negative_size_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__negative_size_pattern_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__non_byte_aligned_size_calculation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__one.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_size_for_bit_array_segment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_on_negative_size_calculation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_size_arithmetic.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_unknown_size_and_literal_string.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf16.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf16_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf32.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf32_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_minus_infinity_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_minus_infinity_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_nan_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_nan_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_plus_infinity_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_plus_infinity_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_float_is_unreachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_int_is_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_minus_infinity_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_minus_infinity_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_nan_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_nan_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_plus_infinity_still_reachable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_plus_infinity_still_reachable_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__segments_shadowing_each_other.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_big_endian_constant_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_big_endian_dynamic_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_bits_expression_requires_v1_9.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_max_size_for_compile_time_evaluation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_negative_overflow.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_positive_overflow.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_dynamic_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_little_endian_constant_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_little_endian_dynamic_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_bit_array.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_bit_array_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_multiple_bit_arrays.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_multiple_bit_arrays_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__two.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unaligned_int_expression_requires_v1_9.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unaligned_int_pattern_requires_v1_9.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unit_with_bits_option.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unit_with_bits_option_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_codepoint.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_codepoint.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_codepoint_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_little_endian.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8_codepoint.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8_codepoint_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable_sized.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable_sized_segment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__with_unit.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__assignment_last_in_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_is_not_an_iife.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_shadowing_variables.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_with_just_an_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_with_parenthesised_expression_returning_from_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_returning_functions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_returning_use.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_whose_values_are_unused_do_not_generate_assignments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__concat_blocks.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__left_operator_sequence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__let_assert_message_no_lifted.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__let_assert_only_statement_in_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks_with_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks_with_pipe.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_non_ending_blocks.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_simple_blocks.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__pattern_assignment_last_in_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__right_operator_sequence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__sequences.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__blocks__shadowed_variable_in_nested_scope.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__assigning.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_panic_left.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_panic_right.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_todo_left.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_todo_right.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__constants.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__constants_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__expressions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__negate_panic.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__negate_todo.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__negation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__negation_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__nil_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__operators.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__shadowed_bools_and_nil.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__bools__shadowed_bools_and_nil_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__called_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_branches_guards_are_wrapped_in_parentheses.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_list_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_4.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_string_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_string_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_wrapped_in_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_4.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_5.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_6.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_simple_value_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_local_var_in_tuple.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_on_error.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_list_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_record_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_same_value_as_two_subjects_one_is_picked.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_simple_value_matched_by_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__deeply_nested_string_prefix_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__directly_matching_case_subject.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__duplicate_name_for_variables_used_in_guards.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__duplicate_name_for_variables_used_in_guards_shadowing_outer_name.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__following_todo.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__guard_variable_only_brought_into_scope_when_needed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__guard_variable_only_brought_into_scope_when_needed_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__interfering_string_pattern_succeeds_if_succeeding.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__list_with_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__list_with_guard_no_binding.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_catch_all.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_no_catch_all.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_or.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_subject_assignments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_match.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_match_that_would_crash_on_js.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__pattern_matching_on_aliased_result_constructor.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__pipe.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__pointless.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__preassign_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__record_update_in_pipeline_in_case_clause.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__result.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__single_clause_variables.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__single_clause_variables_assigned.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__slicing_is_handled_properly_with_multiple_branches.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__string_concatenation_in_clause_guards.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__tuple_and_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case__var_true.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_list.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__bit_array_referencing_shadowed_variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__bitarray_with_var.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__constructor_function_in_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__custom_type_constructor_imported_and_aliased.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__eq_complex.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__eq_scalar.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__field_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__float_division.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__guard_pattern_does_not_shadow_outer_scope.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__imported_aliased_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__imported_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__int_division.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__int_remainder.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__keyword_var.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access_aliased.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access_submodule.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_list_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_nested_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_string_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_tuple_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__nested_record_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_eq_complex.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_eq_scalar.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_two.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__operator_wrapping_left.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__operator_wrapping_right.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__rebound_var.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__referencing_pattern_var.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__tuple_index.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_constructor_gets_pure_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_list_with_constructors_gets_pure_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_tuple_with_constructors_gets_pure_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__constants_get_their_own_jsdoc_comment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__constructor_function_in_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__custom_type_constructor_imported_and_aliased.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__imported_aliased_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__imported_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend_from_other_module.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend_literal.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_bool_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_float_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_int_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_list_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_nil_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_string_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_tuple_does_not_get_constant_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_ignoring_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_multiple_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_no_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_using_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_ignoring_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_multiple_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_no_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_using_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_with_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_with_fields_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_zero_arity_imported.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_zero_arity_imported_unqualified.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__constructor_as_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__constructors_get_their_own_jsdoc.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__custom_type_with_named_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__destructure_custom_type_with_mixed_fields_first_unlabelled.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__destructure_custom_type_with_named_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__equality_with_non_singleton_variant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__external_annotated_type_used_in_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__external_annotation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__generic_type_parameter_used_in_field.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__guard_equality_with_non_singleton_variant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_ignoring_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_multiple_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_no_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_using_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__keyword_label_name.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__long_name_variant_mixed_labels_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__long_name_variant_without_labels.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__mixed_singleton_and_non_singleton.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__multiple_singleton_constructors.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__nested_pattern_with_labels.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__new_type_import_syntax.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__non_singleton_record_equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__opaque_types_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__qualified.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_access_in_guard_with_reserved_field_name.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_access_in_pattern_with_reserved_field_name.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_with_field_named_constructor.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_with_field_named_then.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_in_case_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_inequality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_reverse_order.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__types_must_be_rendered_before_functions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unapplied_record_constructors_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unnamed_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unnamed_fields_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_constructor_as_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_ignoring_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_multiple_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_no_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_no_label_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_using_label.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unused_opaque_constructor_is_generated_correctly.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_aliased_clause_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_aliased_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_qualified_clause_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_qualified_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_unqualified_clause_guard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_unqualified_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_typscript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_aliased.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_aliased_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_literal.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_evaluates_printed_value_before_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_in_a_pipeline.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_in_a_pipeline_with_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_block_as_a_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_case_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_function_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_function_call_and_a_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_panic.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_simple_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_simple_expression_and_a_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_complex_expression_as_a_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__module_named_inspect.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__multiple_echos_in_a_pipeline.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__echo__multiple_echos_inside_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__at_namespace_module.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__attribute_erlang.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__attribute_javascript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__both_externals_no_valid_impl.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__discarded_names_in_external_are_passed_correctly.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__duplicate_import.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__erlang_and_javascript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__erlang_only.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__external_fn_escaping.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__external_type_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__inline_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__module_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__name_to_escape.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__no_body.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__no_module.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__pipe_variable_shadow.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_attribute_erlang.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_attribute_javascript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_erlang_and_javascript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__pub_module_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__pub_module_fn_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__same_module_multiple_imports.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__same_name_external.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__tf_type_name_usage.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__externals__type_.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__assert_last.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__bad_comma.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__calling_fn_literal.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__calling_functions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__case_in_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__exported_functions.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__fn_return_fn_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting_typescript1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__immediately_invoked_function_expressions_include_statement_level.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__internal_function_gets_ignored_jsdoc.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__keyword_in_recursive_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__labelled_argument_ordering.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__let_last.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__module_const_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__module_const_fn1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__multiple_discard.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__no_recur_in_anon_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_into_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_last.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_shadow_import.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_variable_rebinding.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_with_block_in_the_middle.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__public_function_gets_jsdoc.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__recursion_with_discards.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_argument.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_imported.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_imported_alias.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_in_function_arguments.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__shadowing_current.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__star_slash_in_jsdoc.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__tail_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__tail_call_doesnt_clobber_tail_position_tracking.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__two_pipes_in_a_row.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__variable_rewriting_in_anon_fn_with_matching_parameter.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__functions__variable_rewriting_in_anon_fn_with_matching_parameter_in_case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__generics__fn_generics_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__generics__record_generics_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__generics__result_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__generics__task_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__generics__tuple_generics_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__blocks_get_preserved_when_needed.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__blocks_get_preserved_when_needed2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__do_not_inline_parameters_that_have_side_effects.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__do_not_inline_parameters_used_more_than_once.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_anonymous_function_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_anonymous_function_in_pipe.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_capture_in_pipe.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_which_calls_other_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use_and_anonymous.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use_becomes_tail_recursive.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function_anonymous.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function_with_capture.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_shadowed_variable.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_shadowed_variable_nested.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowed_in_case_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowing_case_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowing_parameter.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inlining_works_properly_with_record_updates.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inlining_works_through_blocks.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__inlining__parameters_from_nested_functions_are_correctly_inlined.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_constants.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_constants_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_destructuring.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__long_list_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__multi_line_list_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__lists__tight_empty_list.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_aliased_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__aliased_unqualified_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__constant_module_access_with_keyword.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__different_package_import.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__discarded_duplicate_import.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__discarded_duplicate_import_with_unqualified.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__import_with_keyword.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__multiple_unqualified_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_module_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_nested_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_same_package.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__renamed_module.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__modules__unqualified_fn_call.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_division_by_non_zero_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_division_by_non_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_remainder_by_non_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_non_zero_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_non_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_zero_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_inf_by_inf_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_divide_complex_expr.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_equality1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_operators.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_scientific_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__inf_float_case_statement.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_divide_complex_expr.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_equality1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_mod_complex_expr.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_negation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_operators.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_patterns.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__operator_precedence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int_const.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder_by_non_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder_by_zero_int.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__repeated_int_negation.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_binary_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_decimal_point.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_decimal_point_case_statement.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_hexadecimal_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_octal_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_binary_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_hex_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_octal_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__wide_float_div.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_binary_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_hex_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_octal_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__as_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__bare.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__bare_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__case_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__panic_as.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__pipe.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__panic__sequence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_error.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_nil.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_nil_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_ok_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value_constant.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__const_record_update_generic_respecialization.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__constant_record_update_with_unlabelled_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_constructor_is_escaped.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_prototype_is_escaped.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_then_is_escaped.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_x0.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants_parameterised_types.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants_positions_other_than_first.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_with_first_position_different_types.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessors.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__records__record_update_with_unlabelled_fields.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__recursion__not_tco_due_to_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__recursion__shadowing_so_not_recursive.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__recursion__tco.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__recursion__tco_case_block.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_error.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_error_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_ok_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__error.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__error_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__ok_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_error.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_error_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_ok.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_ok_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__ascii_as_unicode_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__const_concat.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__const_concat_multiple.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__discard_concat_rest_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__equality.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_concat.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_literals.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_patterns.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment_with_multiple_subjects.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment_with_utf_escape_sequence.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_shadowing.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_utf16.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode_escape_sequence_6_digits.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__as_expression.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__case_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__inside_fn.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__with_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__with_message_expr.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__without_message.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__todo__without_message_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__case.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__constant_tuples.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__constant_tuples1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__nested_pattern.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_access.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_formatting_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_typescript.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_with_block_element.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_with_block_element1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__import_indirect_type_alias.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__private_type_in_opaque_type.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__type_alias.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_1.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_2.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_3.snap
│ │ │ │ │ ├── gleam_core__javascript__tests__use___no_callback_body.snap
│ │ │ │ │ └── gleam_core__javascript__tests__use___patterns.snap
│ │ │ │ ├── strings.rs
│ │ │ │ ├── todo.rs
│ │ │ │ ├── tuples.rs
│ │ │ │ ├── type_alias.rs
│ │ │ │ └── use_.rs
│ │ │ ├── tests.rs
│ │ │ └── typescript.rs
│ │ ├── javascript.rs
│ │ ├── lib.rs
│ │ ├── line_numbers.rs
│ │ ├── manifest.rs
│ │ ├── metadata/
│ │ │ └── tests.rs
│ │ ├── metadata.rs
│ │ ├── package_interface/
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__package_interface__tests__constructors_with_documentation.snap
│ │ │ │ ├── gleam_core__package_interface__tests__generic_function.snap
│ │ │ │ ├── gleam_core__package_interface__tests__imported_aliased_type_keeps_original_name.snap
│ │ │ │ ├── gleam_core__package_interface__tests__imported_type.snap
│ │ │ │ ├── gleam_core__package_interface__tests__internal_definitions_are_not_included.snap
│ │ │ │ ├── gleam_core__package_interface__tests__internal_modules_are_not_exported.snap
│ │ │ │ ├── gleam_core__package_interface__tests__labelled_function_parameters.snap
│ │ │ │ ├── gleam_core__package_interface__tests__multiple_type_variables.snap
│ │ │ │ ├── gleam_core__package_interface__tests__opaque_constructors_are_not_exposed.snap
│ │ │ │ ├── gleam_core__package_interface__tests__package_documentation_is_included.snap
│ │ │ │ ├── gleam_core__package_interface__tests__prelude_types.snap
│ │ │ │ ├── gleam_core__package_interface__tests__private_definitions_are_not_included.snap
│ │ │ │ ├── gleam_core__package_interface__tests__type_aliases.snap
│ │ │ │ ├── gleam_core__package_interface__tests__type_constructors.snap
│ │ │ │ └── gleam_core__package_interface__tests__type_definition.snap
│ │ │ └── tests.rs
│ │ ├── package_interface.rs
│ │ ├── parse/
│ │ │ ├── error.rs
│ │ │ ├── extra.rs
│ │ │ ├── lexer.rs
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__parse__tests__append_to_const_list.snap
│ │ │ │ ├── gleam_core__parse__tests__argument_scope.snap
│ │ │ │ ├── gleam_core__parse__tests__arithmetic_in_guards.snap
│ │ │ │ ├── gleam_core__parse__tests__assert_statement.snap
│ │ │ │ ├── gleam_core__parse__tests__assert_statement_followed_by_statement.snap
│ │ │ │ ├── gleam_core__parse__tests__assert_statement_with_message.snap
│ │ │ │ ├── gleam_core__parse__tests__assert_statement_without_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__assign_left_hand_side_of_concat_pattern.snap
│ │ │ │ ├── gleam_core__parse__tests__assignment_pattern_invalid_bit_segment.snap
│ │ │ │ ├── gleam_core__parse__tests__assignment_pattern_invalid_tuple.snap
│ │ │ │ ├── gleam_core__parse__tests__attributes_with_improper_definition.snap
│ │ │ │ ├── gleam_core__parse__tests__attributes_with_no_definition.snap
│ │ │ │ ├── gleam_core__parse__tests__bare_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__bit_array_invalid_segment.snap
│ │ │ │ ├── gleam_core__parse__tests__block_of_one.snap
│ │ │ │ ├── gleam_core__parse__tests__block_of_two.snap
│ │ │ │ ├── gleam_core__parse__tests__byte_order_mark.snap
│ │ │ │ ├── gleam_core__parse__tests__byte_order_mark_module.snap
│ │ │ │ ├── gleam_core__parse__tests__capture_with_name.snap
│ │ │ │ ├── gleam_core__parse__tests__case_alternative_clause_no_subject.snap
│ │ │ │ ├── gleam_core__parse__tests__case_clause_no_subject.snap
│ │ │ │ ├── gleam_core__parse__tests__case_expression_without_body.snap
│ │ │ │ ├── gleam_core__parse__tests__case_guard_with_empty_block.snap
│ │ │ │ ├── gleam_core__parse__tests__case_guard_with_nested_blocks.snap
│ │ │ │ ├── gleam_core__parse__tests__case_invalid_case_pattern.snap
│ │ │ │ ├── gleam_core__parse__tests__case_invalid_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__case_list_pattern_after_spread.snap
│ │ │ │ ├── gleam_core__parse__tests__const_invalid_bit_array_segment.snap
│ │ │ │ ├── gleam_core__parse__tests__const_invalid_list.snap
│ │ │ │ ├── gleam_core__parse__tests__const_invalid_record_constructor.snap
│ │ │ │ ├── gleam_core__parse__tests__const_invalid_tuple.snap
│ │ │ │ ├── gleam_core__parse__tests__const_record_update_all_fields.snap
│ │ │ │ ├── gleam_core__parse__tests__const_record_update_basic.snap
│ │ │ │ ├── gleam_core__parse__tests__const_record_update_only.snap
│ │ │ │ ├── gleam_core__parse__tests__const_record_update_with_module.snap
│ │ │ │ ├── gleam_core__parse__tests__const_string_concat.snap
│ │ │ │ ├── gleam_core__parse__tests__const_string_concat_naked_right.snap
│ │ │ │ ├── gleam_core__parse__tests__const_with_function_call.snap
│ │ │ │ ├── gleam_core__parse__tests__const_with_function_call_with_args.snap
│ │ │ │ ├── gleam_core__parse__tests__constant_inside_function.snap
│ │ │ │ ├── gleam_core__parse__tests__correct_precedence_in_pattern_size.snap
│ │ │ │ ├── gleam_core__parse__tests__deeply_nested_tuples.snap
│ │ │ │ ├── gleam_core__parse__tests__deeply_nested_tuples_no_block.snap
│ │ │ │ ├── gleam_core__parse__tests__deprecation_attribute_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__deprecation_without_message.snap
│ │ │ │ ├── gleam_core__parse__tests__discard_left_hand_side_of_concat_pattern.snap
│ │ │ │ ├── gleam_core__parse__tests__doesnt_issue_special_error_for_pythonic_import_if_slash.snap
│ │ │ │ ├── gleam_core__parse__tests__dot_access_function_call_in_case_clause_guard.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_at_start_of_pipeline_wraps_the_whole_thing.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_cannot_have_an_expression_in_a_pipeline.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_followed_by_expression_ends_where_expression_ends.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_has_lower_precedence_than_binop.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_has_lower_precedence_than_pipeline.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_in_a_pipeline.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_message_1.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_message_2.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_1.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_2.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_3.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_block.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_complex_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_let_assert_and_message.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_let_assert_and_messages.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_no_expressions_after_it.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_no_expressions_after_it_but_a_message.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_panic.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_panic_and_message.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_panic_and_messages.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_simple_expression_1.snap
│ │ │ │ ├── gleam_core__parse__tests__echo_with_simple_expression_2.snap
│ │ │ │ ├── gleam_core__parse__tests__error_message_on_variable_starting_with_underscore.snap
│ │ │ │ ├── gleam_core__parse__tests__error_message_on_variable_starting_with_underscore2.snap
│ │ │ │ ├── gleam_core__parse__tests__external_attribute_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__external_attribute_with_custom_type.snap
│ │ │ │ ├── gleam_core__parse__tests__external_attribute_with_non_fn_definition.snap
│ │ │ │ ├── gleam_core__parse__tests__float_empty_exponent.snap
│ │ │ │ ├── gleam_core__parse__tests__function_call_in_case_clause_guard.snap
│ │ │ │ ├── gleam_core__parse__tests__function_definition_angle_generics_error.snap
│ │ │ │ ├── gleam_core__parse__tests__function_inside_a_type.snap
│ │ │ │ ├── gleam_core__parse__tests__function_invalid_signature.snap
│ │ │ │ ├── gleam_core__parse__tests__function_type_invalid_param_type.snap
│ │ │ │ ├── gleam_core__parse__tests__if_like_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__import_type.snap
│ │ │ │ ├── gleam_core__parse__tests__incomplete_function.snap
│ │ │ │ ├── gleam_core__parse__tests__inner_single_quote_parses.snap
│ │ │ │ ├── gleam_core__parse__tests__internal_attribute_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_2.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_3.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_4.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_5.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_left_paren_in_case_clause_guard.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_2.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_3.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_4.snap
│ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_5.snap
│ │ │ │ ├── gleam_core__parse__tests__list_spread_as_first_item_followed_by_other_items.snap
│ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_extra_item_and_another_spread.snap
│ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_extra_items.snap
│ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_other_spread.snap
│ │ │ │ ├── gleam_core__parse__tests__list_spread_with_no_tail_in_the_middle_of_a_list.snap
│ │ │ │ ├── gleam_core__parse__tests__missing_constructor_arguments.snap
│ │ │ │ ├── gleam_core__parse__tests__missing_target.snap
│ │ │ │ ├── gleam_core__parse__tests__missing_target_and_bracket.snap
│ │ │ │ ├── gleam_core__parse__tests__missing_type_constructor_arguments_in_type_definition.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_deprecation_attribute_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_deprecation_attributes.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_external_for_same_project_erlang.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_external_for_same_project_javascript.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_internal_attributes.snap
│ │ │ │ ├── gleam_core__parse__tests__multiple_unsupported_attributes_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__nested_block.snap
│ │ │ │ ├── gleam_core__parse__tests__nested_tuple_access_after_function.snap
│ │ │ │ ├── gleam_core__parse__tests__nested_tuples.snap
│ │ │ │ ├── gleam_core__parse__tests__nested_tuples_no_block.snap
│ │ │ │ ├── gleam_core__parse__tests__no_eq_after_binding_snapshot_1.snap
│ │ │ │ ├── gleam_core__parse__tests__no_eq_after_binding_snapshot_2.snap
│ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_1.snap
│ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_2.snap
│ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_3.snap
│ │ │ │ ├── gleam_core__parse__tests__non_module_level_function_with_a_name.snap
│ │ │ │ ├── gleam_core__parse__tests__non_module_level_function_with_not_a_name.snap
│ │ │ │ ├── gleam_core__parse__tests__operator_in_pattern_size.snap
│ │ │ │ ├── gleam_core__parse__tests__panic_with_echo.snap
│ │ │ │ ├── gleam_core__parse__tests__panic_with_echo_and_message.snap
│ │ │ │ ├── gleam_core__parse__tests__prepend_no_elements_to_const_list.snap
│ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_with_multiple_spreads.snap
│ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_with_no_tail.snap
│ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_without_comma.snap
│ │ │ │ ├── gleam_core__parse__tests__private_internal_const.snap
│ │ │ │ ├── gleam_core__parse__tests__private_internal_function.snap
│ │ │ │ ├── gleam_core__parse__tests__private_internal_type.snap
│ │ │ │ ├── gleam_core__parse__tests__private_internal_type_alias.snap
│ │ │ │ ├── gleam_core__parse__tests__private_opaque_type_is_parsed.snap
│ │ │ │ ├── gleam_core__parse__tests__pub_function_inside_a_type.snap
│ │ │ │ ├── gleam_core__parse__tests__record_access_no_label.snap
│ │ │ │ ├── gleam_core__parse__tests__repeated_echos.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_auto.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_delegate.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_derive.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_echo.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_else.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_implement.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_macro.snap
│ │ │ │ ├── gleam_core__parse__tests__reserved_test.snap
│ │ │ │ ├── gleam_core__parse__tests__semicolons.snap
│ │ │ │ ├── gleam_core__parse__tests__special_error_for_pythonic_import.snap
│ │ │ │ ├── gleam_core__parse__tests__special_error_for_pythonic_neste_import.snap
│ │ │ │ ├── gleam_core__parse__tests__string_concatenation_in_case_clause_guard.snap
│ │ │ │ ├── gleam_core__parse__tests__string_single_char_suggestion.snap
│ │ │ │ ├── gleam_core__parse__tests__target_attribute_on_type_variant.snap
│ │ │ │ ├── gleam_core__parse__tests__tuple_invalid_expr.snap
│ │ │ │ ├── gleam_core__parse__tests__tuple_without_hash.snap
│ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_error.snap
│ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_error_fallback.snap
│ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_with_upname_error.snap
│ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_usage_with_module_error.snap
│ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_usage_without_module_error.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_constructor.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_constructor_arg.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_record.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor_invalid_field_type.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor_without_field_type.snap
│ │ │ │ ├── gleam_core__parse__tests__type_invalid_type_name.snap
│ │ │ │ ├── gleam_core__parse__tests__unknown_attribute.snap
│ │ │ │ ├── gleam_core__parse__tests__unknown_external_target.snap
│ │ │ │ ├── gleam_core__parse__tests__unknown_target.snap
│ │ │ │ ├── gleam_core__parse__tests__use_invalid_assignments.snap
│ │ │ │ ├── gleam_core__parse__tests__valueless_list_spread_expression.snap
│ │ │ │ ├── gleam_core__parse__tests__with_let_binding3.snap
│ │ │ │ ├── gleam_core__parse__tests__with_let_binding3_and_annotation.snap
│ │ │ │ ├── gleam_core__parse__tests__wrong_function_return_type_declaration_using_colon_instead_of_right_arrow.snap
│ │ │ │ ├── gleam_core__parse__tests__wrong_record_access_pattern.snap
│ │ │ │ └── gleam_core__parse__tests__wrong_type_of_comments_with_hash.snap
│ │ │ ├── tests.rs
│ │ │ └── token.rs
│ │ ├── parse.rs
│ │ ├── paths.rs
│ │ ├── pretty/
│ │ │ └── tests.rs
│ │ ├── pretty.rs
│ │ ├── reference.rs
│ │ ├── requirement.rs
│ │ ├── snapshots/
│ │ │ ├── gleam_core__config__barebones_package_config_to_json.snap
│ │ │ ├── gleam_core__config__deny_extra_deps_properties.snap
│ │ │ ├── gleam_core__config__name_with_dash.snap
│ │ │ ├── gleam_core__config__name_with_number_start.snap
│ │ │ ├── gleam_core__config__package_config_to_json.snap
│ │ │ ├── gleam_core__dependency__tests__resolution_error_message.snap
│ │ │ ├── gleam_core__docs__barebones_package_config_to_json.snap
│ │ │ ├── gleam_core__docs__package_config_to_json.snap
│ │ │ └── gleam_core__requirement__tests__read_wrong_version.snap
│ │ ├── strings.rs
│ │ ├── type_/
│ │ │ ├── environment.rs
│ │ │ ├── error.rs
│ │ │ ├── expression.rs
│ │ │ ├── fields.rs
│ │ │ ├── hydrator.rs
│ │ │ ├── pattern.rs
│ │ │ ├── pipe.rs
│ │ │ ├── prelude.rs
│ │ │ ├── pretty.rs
│ │ │ ├── printer.rs
│ │ │ ├── snapshots/
│ │ │ │ ├── gleam_core__type___tests__const_record_update_all_fields.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_field_type_mismatch_error.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_fieldless_warning.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_non_record.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_nonexistent_field.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_type_mismatch_error.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_unlabelled_fields.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_variant_mismatch_error.snap
│ │ │ │ ├── gleam_core__type___tests__const_record_update_variant_without_args.snap
│ │ │ │ ├── gleam_core__type___tests__correct_type_check_for_multiple_mutually_recursive_functions.snap
│ │ │ │ ├── gleam_core__type___tests__function_parameter_errors_do_not_stop_inference.snap
│ │ │ │ ├── gleam_core__type___tests__generic_unlabelled_field_in_updated_const_record_wrong_type.snap
│ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity1.snap
│ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity2.snap
│ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity3.snap
│ │ │ │ ├── gleam_core__type___tests__prepend_constant_list_wrong_element_type.snap
│ │ │ │ ├── gleam_core__type___tests__prepend_constant_list_wrong_type.snap
│ │ │ │ ├── gleam_core__type___tests__private_types_not_available_in_other_modules.snap
│ │ │ │ ├── gleam_core__type___tests__record_update_variant_inference_fails_for_several_possible_variants.snap
│ │ │ │ ├── gleam_core__type___tests__record_update_variant_inference_fails_for_several_possible_variants_on_subject_variable.snap
│ │ │ │ ├── gleam_core__type___tests__string_concat_ko_1.snap
│ │ │ │ ├── gleam_core__type___tests__string_concat_ko_2.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_allow_different_variants_to_be_treated_as_safe.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_allow_lowercase_bools_in_match_clause.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_cause_false_positives_for_variant_matching.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_functions.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_nested_type.snap
│ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_tuples.snap
│ │ │ │ ├── gleam_core__type___tests__unlabelled_argument_not_allowed_after_labelled_argument.snap
│ │ │ │ ├── gleam_core__type___tests__variant_inference_does_not_escape_clause_scope.snap
│ │ │ │ └── gleam_core__type___tests__variant_inference_on_literal_record.snap
│ │ │ ├── tests/
│ │ │ │ ├── accessors.rs
│ │ │ │ ├── assert.rs
│ │ │ │ ├── assignments.rs
│ │ │ │ ├── conditional_compilation.rs
│ │ │ │ ├── custom_types.rs
│ │ │ │ ├── dead_code_detection.rs
│ │ │ │ ├── echo.rs
│ │ │ │ ├── errors.rs
│ │ │ │ ├── exhaustiveness.rs
│ │ │ │ ├── externals.rs
│ │ │ │ ├── functions.rs
│ │ │ │ ├── guards.rs
│ │ │ │ ├── imports.rs
│ │ │ │ ├── let_assert.rs
│ │ │ │ ├── pipes.rs
│ │ │ │ ├── pretty.rs
│ │ │ │ ├── snapshots/
│ │ │ │ │ ├── gleam_core__type___tests__assert__bool_literal.snap
│ │ │ │ │ ├── gleam_core__type___tests__assert__comparison_on_literals.snap
│ │ │ │ │ ├── gleam_core__type___tests__assert__equality_check_on_literals.snap
│ │ │ │ │ ├── gleam_core__type___tests__assert__mismatched_types.snap
│ │ │ │ │ ├── gleam_core__type___tests__assert__negation_of_bool_literal.snap
│ │ │ │ │ ├── gleam_core__type___tests__assert__wrong_message_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__conflict_with_import.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__depreacted_type_deprecate_varient_err.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_all_varients_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_varients_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__duplicate_variable_error_does_not_stop_analysis.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__pattern_match_correct_labeled_field.snap
│ │ │ │ │ ├── gleam_core__type___tests__custom_types__pattern_match_correct_pos_field.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constant_only_referenced_by_unused_constant.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constant_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constructor_used_if_type_alias_shadows_it.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_alias_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_alias_only_referenced_by_unused_function_with_unqualified.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_marked_unused_when_shadowed_in_record_access.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_and_constructor_with_same_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_and_constructor_with_same_name2.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_value_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__local_variable_marked_unused_when_shadowed_in_module_access.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__private_type_alias_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__private_type_alias_underlying_type_referenced_by_public_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__shadowed_imported_value_marked_unused.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__type_and_variant_unused.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__type_variant_only_referenced_by_unused_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_mutually_recursive_functions.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_recursive_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_type_alias.snap
│ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__used_shadowed_imported_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__access_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__accessor_multiple_variants_multiple_positions.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__accessor_multiple_variants_multiple_positions2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__add_f_int_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__add_int_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__add_on_strings.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_import_error_no_unqualified.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_import_error_with_unqualified.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_type_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__assigned_function_annotation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_binary.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_bits_option_in_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_float_size.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_invalid_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_endianness1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_endianness2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_options_bit_array.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_options_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_signedness1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_signedness2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_size.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_size2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_aliased_variable_string.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf16.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf32.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf8.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf16.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf16_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf32.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf32_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf8.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf8_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf16.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf32.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf8_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_variable_string.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_unit_no_size.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_unit_unit.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_size_not_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_size_not_int_variable.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_using_pattern_variables.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_using_pattern_variables_from_other_bit_array.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_utf8_and_size.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_utf8_and_unit.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case10.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case11.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case12.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case13.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case14.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case15.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case16.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case17.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case18.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case19.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case20.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case6.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case7.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case8.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case9.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_clause_mismatch.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_clause_pipe_diagnostic.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_could_not_unify.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_int_tuple_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_list_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_operator_unify_situation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_subject_pattern_unify.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_subject_pattern_unify_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_tuple_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__case_tuple_guard_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_heterogenus_list.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_annotation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_inferred_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_unbound_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_annotation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_annotation_and_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_unannotated_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_mismatched_types.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_string_concat_invalid_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__const_usage_wrong.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__constructor_that_does_not_exist_does_not_produce_error_for_labelled_args.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__correct_pipe_arity_error_location.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__custom_type_module_constants.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__do_not_suggest_ignored_variable_outside_of_current_scope.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__double_assignment_in_bit_array.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_alias_names.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_anon_function_arguments.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_and_function_names_const_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_const.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_extfn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_names.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_custom_type_names.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_const.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_extfn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fields_in_record_update_reports_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_const.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_extfn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_label_shorthands_in_record_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_module_function_arguments.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_var_in_record_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_invalid_message.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_10.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_6.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_7.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_8.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_9.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_and_invalid_message.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_and_message.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__error_for_missing_type_parameters.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__expression_constructor_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__external_annotation_on_custom_type_with_constructors.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_list.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_list_tail.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_negate_bool.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_negate_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_tuple.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__field_not_in_all_variants.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__field_not_in_any_variant.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__field_type_different_between_variants.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__float_gtf_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints_in_case_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__fn0_eq_fn1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__function_arg_and_return_annotation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__function_return_annotation.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__function_return_annotation_mismatch_with_pipe.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__function_that_does_not_exist_does_not_produce_error_for_labelled_args.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__functions_called_outside_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__generic_unlabelled_field_in_updated_record_wrong_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__guard_float_int_eq_vars.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__guard_if_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__guard_int_float_eq_vars.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__guard_record_wrong_arity.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__hint_for_method_call.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__incomplete_pattern_does_not_show_structure_of_internal_type_outside_of_its_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__incomplete_pattern_does_not_show_structure_of_internal_type_outside_of_its_module_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__incorrect_arity_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__incorrect_arity_error_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__inexhaustive_use_reports_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__inferred_variant_record_update_change_type_parameter_different_branches.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_eq_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_float_list.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_gt_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats_in_case_guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_bit_array_pattern_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_bit_array_pattern_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_case_variable_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_case_variable_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_const_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_arg_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_pattern_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_pattern_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_custom_type_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_function_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_function_type_parameter_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_list_pattern_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_list_pattern_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_label.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_label2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_pattern_assignment_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_pattern_label_shorthand.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_alias.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_tuple_pattern_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_tuple_pattern_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_alias_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_alias_parameter_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_parameter_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_use_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_use_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_variable_discard_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_variable_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__leak_multiple_private_types.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__let_assert_binding_cannot_be_used_in_panic_message.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__list.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__mismatched_list_tail.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__missing_case_body.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__missing_type_constructor_arguments_in_type_annotation_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__missing_type_constructor_arguments_in_type_annotation_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__missing_variable_in_alternative_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_arity_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify10.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify11.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify12.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify6.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify7.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify8.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify9.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_non_local_gaurd_var.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_6.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__native_endianness_javascript_target.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negate_boolean_as_integer.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negate_float_as_integer.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negate_string.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float_in_const.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float_in_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__negative_size_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_definition.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_definition2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_record_fields.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_record_update_when_constructor_definition_is_invalid.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_hint_for_non_method_call.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__no_note_about_reliable_access_if_the_accessed_type_has_a_single_variant.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__non_utf8_string_assignment.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__not_a_constructor_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__ok_2_args.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float_in_const.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float_in_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__pattern_with_incorrect_arity.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_arity_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_mismatch_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_value_type_mismatch_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__positional_argument_after_labelled.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__positional_argument_after_one_using_label_shorthand.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__private_opaque_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_invalid_operands.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_invalid_pipe_argument.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_mismatched_type_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_a_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_a_tuple.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_fn_in_use.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_similar_type_name.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_unification_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_unknown_field.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_use_fn_without_callback.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_access_on_inferred_variant_when_field_is_in_other_variants.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_compatible_fields_wrong_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_compatible_fields_wrong_variant.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_incompatible_but_linked_generics.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_unknown_variant.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_wrong_variant.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_wrong_variant_imported_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__recursive_var.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__remembering_record_field_when_type_checking_fails.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_6.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_7.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_fn_argument.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_function_argument.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_let_variable.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_pattern_variable.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__show_only_missing_labels.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__src_importing_dev_dependency.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__subject_int_float_guard_tuple.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_unwrapping_a_result_when_types_match.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_function_return_value_in_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_function_return_value_in_ok.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_use_returned_value_in_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_use_returned_value_in_ok.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_error_if_types_match.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_error_if_types_match_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_with_block.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_with_multiline_result_in_block.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_with_generic_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__true_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_2_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_arity.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_not_a_tuple.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_not_a_tuple_unbound.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_out_of_bounds.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_int_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_annotations.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes4.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_imported_as_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_with_more_arguments.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_variables_in_body.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__type_vars_must_be_declared.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_arg_with_label_shorthand.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_labelled_arg.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_labelled_arg_record_constructor.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_accessed_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_constructor_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_appears_in_a_variant_has_note.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_appears_in_an_imported_variant_has_note.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_does_not_appear_in_variant_has_no_note.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_update2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_imported_module_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_label.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_label_shorthand.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_import.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_typo_for_imported_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_typo_for_unimported_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_record_field.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_record_field_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_in_alias.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_in_alias2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_var_in_alias2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__unnecessary_spread_operator.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__update_multi_variant_record.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__utf16_codepoint_javascript_target.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__utf32_codepoint_javascript_target.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__utf8_codepoint_javascript_target.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__value_imported_as_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_number_of_subjects.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_number_of_subjects_alternative_patterns.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_arg.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_ret.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_update.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_var.snap
│ │ │ │ │ ├── gleam_core__type___tests__errors__zero_size_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_bits_catches_everything.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_bytes_needs_catch_all.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_patterns_are_redundant.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_redundant_patterns_with_variable_size.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_redundant_patterns_with_variable_size_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bool_false.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bool_true.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_aliased_unqualified_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_alias.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_names.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_when_aliased_and_shadowed.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_when_shadowed.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_prelude_module_unqualified.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_prelude_module_when_shadowed.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_unqualifed_when_aliased.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_unqualified_value.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__compiler_does_not_crash_when_defining_duplicate_alternative_variables.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__compiler_does_not_crash_when_matching_on_utfcodepoint.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__correct_missing_patterns_for_opaque_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__correct_missing_patterns_for_opaque_type_in_definition_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__custom_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__custom_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_6.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_alternative_patterns.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_pattern_in_alternative.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_pattern_with_multiple_alternatives.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_bool.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_custom_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_external.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_float.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_generic.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_int.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_list.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_multi_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_string.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__float_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__float_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__guard.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__guard_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern3.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern4.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern5.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__int_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__int_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__label_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__let_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_bool_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_bool_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_empty.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_non_empty.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_one.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_one_two.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_zero_one_two.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_zero_two_any.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__multiple_unreachable_prefix_patterns.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__multiple_unreachable_prefix_patterns_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__nested_type_parameter_usage.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__other_variant_unreachable_when_inferred.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__other_variant_unreachable_when_inferred2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_scientific_notation.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_scientific_notation_and_underscore.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_different_formatting.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_no_trailing_decimal.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_underscore.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_int_with_multiple_underscores.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_int_with_underscores.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_missing_patterns.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__reference_absent_type.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_4.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_5.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_6.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_7.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_8.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_nil_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_nil_ok.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_ok.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__same_catch_all_bytes_are_redundant.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_1.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_2.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_3.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__tuple_0.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_alternative_multi_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_multi_pattern.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_prefix_pattern_after_prefix.snap
│ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_string_pattern_after_prefix.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_only_function_used_by_javascript_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_only_function_with_erlang_external.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_targeted_function_cant_contain_javascript_only_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__imported_javascript_only_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_constant.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_function_used_by_erlang_module.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_function_with_javascript_external.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_targeted_function_cant_contain_erlang_only_function.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__public_erlang_external.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__public_javascript_external.snap
│ │ │ │ │ ├── gleam_core__type___tests__externals__unsupported_target_for_unused_import.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__annotation_mismatch_function_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__bad_body_function_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_guard_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_pattern_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_then_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arg_types_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_label_shorthand_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_label_shorthand_fault_tolerance2.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_labels_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_labels_fault_tolerance2.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__invalid_javascript_external_do_not_stop_analysis.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_annotation_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_annotation_fault_tolerance2.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_pattern_fault_tolerance2.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_expression_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__no_impl_function_fault_tolerance.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_arg_infer_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_explicit_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_implicit_error.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_not_a_tuple.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_one_arg_type_to_two_args_fn.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__provide_two_args_type_to_fn_wrong_types.snap
│ │ │ │ │ ├── gleam_core__type___tests__functions__recursive_type.snap
│ │ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
# top-most EditorConfig file
root = true
# Matches multiple files with brace expansion notation
# Set default charset
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2
[*.{gleam, erl, hrl, ex, mjs, js, ts, sh}]
max_line_length = 80
[*.{rs, .erl, .hrl}]
indent_size = 4
[Makefile]
indent_style = tab
indent_size = 4
================================================
FILE: .gitattributes
================================================
[attr]generated linguist-generated=true diff=generated
# Tests:
test-package-compiler/src/generated_tests.rs generated
# Lock files:
Cargo.lock generated
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Something isn't working
title: ''
labels: bug
assignees: ''
---
<!--
Please include the following:
- Steps and code to reproduce the problem
- Versions for Gleam, OS, the runtime and any other software used
- Logs from running Gleam with the `GLEAM_LOG` environment variable set to `trace`
-->
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
<!--
Gleam is post-v1, so breaking changes are not possible.
Any new addition to the language itself needs to enable something that is not possible in Gleam today, and solve existing pain-points.
For anything other than trivial and uncontroversial additions please make a GitHub discussion before making an issue. https://github.com/gleam-lang/gleam/discussions/categories/ideas-suggestions
-->
================================================
FILE: .github/actions/build-container/action.yml
================================================
name: "Build Gleam"
description: "Build Gleam Container"
inputs:
version:
description: "Build Version"
required: true
release-id:
description: "Release ID"
required: true
runs:
using: composite
steps:
- name: Download Gleam release assets
uses: robinraju/release-downloader@v1
with:
releaseId: "${{ inputs.release-id }}"
fileName: "gleam-${{ inputs.version }}-{x86_64-unknown-linux-musl,aarch64-unknown-linux-musl}.*"
- name: "Unpack release files into correct location"
shell: bash
run: |
declare -A ARCH
ARCH["amd64"]="x86_64-unknown-linux-musl"
ARCH["arm64"]="aarch64-unknown-linux-musl"
for SHORT in "${!ARCH[@]}"; do
LONG="${ARCH[$SHORT]}"
# Unpack Release
tar xf "gleam-$VERSION-$LONG.tar.gz"
# Move files into place
mv gleam "gleam-$SHORT"
# The SBoM is added to the images so that the Docker Scout Scanner is
# able to find the info about the gleam binary since it was not
# installed by the operating system package manager.
mv "gleam-$VERSION-$LONG.tar.gz.sbom.spdx.json" "gleam-$SHORT.sbom.spdx.json"
# Delete Unused Files
rm -rf "gleam-$VERSION-$LONG*"
done
env:
VERSION: "${{ inputs.version }}"
- name: Authenticate with GitHub container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build version and tags
shell: bash
id: versions
run: |
# Strip `v` prefix from version
BARE_VERSION=$(echo "$VERSION" | sed -e 's|^v/\(.*\)|\1|')
# Build version with platform
PLATFORM_VERSION=$BARE_VERSION-${{ matrix.base-image }}
# Build container tag
TAG=ghcr.io/${{ github.repository }}:$PLATFORM_VERSION
echo "platform-version=$PLATFORM_VERSION" >> $GITHUB_OUTPUT
echo "container-tag=$TAG" >> $GITHUB_OUTPUT
env:
VERSION: "${{ inputs.version }}"
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: containers/${{ matrix.base-image }}.dockerfile
push: true
# Enabling `provenance` will cause the action to create SLSA build
# provenance and push it alongside the tagged image. In practical terms,
# we're adding info to the tag that attests to where, when, and how the
# asset and image was built.
#
# For more info on Docker Attestations, see:
# https://docs.docker.com/build/ci/github-actions/attestations/
provenance: true
# Enabling `sbom` will trigger an SBoM Scan using Docker Scout:
# https://docs.docker.com/scout/how-tos/view-create-sboms/
# The scan will detect any operating system packages as well as the Gleam
# Build SBoM added into the Docker Container.
#
# Why is this helpful?
# * If you build services on top of these container images, you can track
# all dependencies that ship with Gleam, plus the rest of your stack in
# the image.
# * This makes it easier to do image-level vulnerability scans and
# compliance checks.
#
# For more info on Docker SBoMs, see:
# https://docs.docker.com/build/metadata/attestations/sbom/
sbom: true
tags: ${{ steps.versions.outputs.container-tag }}
labels: |
org.opencontainers.image.title=gleam
org.opencontainers.image.url=https://gleam.run
org.opencontainers.image.source=https://github.com/gleam-lang/gleam
org.opencontainers.image.version=${{ steps.versions.outputs.platform-version }}
org.opencontainers.image.licenses=Apache-2.0
================================================
FILE: .github/actions/build-release/action.yml
================================================
name: "Build Gleam"
description: "Build Gleam Release"
inputs:
version:
description: "Build Version"
required: true
toolchain:
description: "Cargo Toolchain"
required: true
target:
description: "Cargo Installation Target"
required: true
cargo-tool:
description: "Cargo Tool used for Build (for example, `cross`)"
required: true
expected-binary-architecture:
description: "Expected Binary Architecture"
required: false
default: ""
azure-tenant-id:
description: "Azure Tenant ID for Windows Code Signing"
required: false
azure-subscription-id:
description: "Azure Subscription ID for Windows Code Signing"
required: false
azure-client-id:
description: "Azure Client ID for Windows Code Signing"
required: false
azure-trusted-signing-account-name:
description: "Azure Trusted Signing Account Name for Windows Code Signing"
required: false
azure-certificate-profile-name:
description: "Azure Certificate Profile Name for Windows Code Signing"
required: false
outputs:
archive:
description: "Path to build asset"
value: "${{ steps.build.outputs.archive }}"
files:
description: "Path to all files"
value: |
${{ steps.build.outputs.archive }}
${{ steps.build.outputs.archive }}.sha256
${{ steps.build.outputs.archive }}.sha512
${{ steps.build.outputs.archive }}.sigstore
${{ steps.build.outputs.archive }}.sbom.spdx.json
${{ steps.build.outputs.archive }}.sbom.cyclonedx.json
runs:
using: "composite"
steps:
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ inputs.toolchain }}
target: ${{ inputs.target }}
cache-key: v1-${{ inputs.target }}
- name: Install Cargo SBoM
shell: bash
# The `cargo-sbom` version is specified in the next line. Change it to
# keep it up-to-date.
run: cargo install cargo-sbom@~0.9.1
- name: Build WASM release binary
if: ${{ inputs.target != 'wasm32-unknown-unknown' }}
uses: clechasseur/rs-cargo@v3
with:
command: build
args: --release --target ${{ inputs.target }}
tool: ${{ inputs.cargo-tool }}
- name: Install wasm-pack
if: ${{ inputs.target == 'wasm32-unknown-unknown' }}
shell: bash
run: curl -sSL https://rustwasm.github.io/wasm-pack/installer/init.sh | sh
- name: Build WASM release binary
if: ${{ inputs.target == 'wasm32-unknown-unknown' }}
shell: bash
run: wasm-pack build --release --target web compiler-wasm
- name: Verify binary architecture
if: ${{ inputs.expected-binary-architecture }}
shell: bash
run: |
BINARY_PATH="target/${{ inputs.target }}/release/gleam"
if [[ "${{ inputs.target }}" == *"windows"* ]]; then
BINARY_PATH="${BINARY_PATH}.exe"
fi
if ! file -b "$BINARY_PATH" | grep -iq "${{ inputs.expected-binary-architecture }}"; then
echo "error: Architecture mismatch"
echo "Expected architecture: '${{ inputs.expected-binary-architecture }}'"
echo "Found binary type: '$(file -b "$BINARY_PATH")'"
exit 1
fi
echo "ok: Architecture match"
# We use Azure Trusted Signing to sign the Windows binaries.
# This is done to ensure that the binaries are trusted and can be
# verified by users and systems that require signed code.
#
# Why is this helpful?
# * It provides a way to verify the authenticity and integrity of the
# binaries distributed by Gleam.
# * It helps prevent tampering with the binaries, ensuring that users
# can trust the code they are running.
#
# For more information, see:
# * https://github.com/Azure/trusted-signing-action
# * https://azure.microsoft.com/en-us/products/trusted-signing
- name: Log in to Azure
if: ${{ contains(inputs.target, '-windows-') && inputs.azure-tenant-id && inputs.azure-subscription-id && inputs.azure-client-id && inputs.azure-trusted-signing-account-name && inputs.azure-certificate-profile-name }}
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
with:
client-id: ${{ inputs.azure-client-id }}
tenant-id: ${{ inputs.azure-tenant-id }}
subscription-id: ${{ inputs.azure-subscription-id }}
- name: Windows Code Signing
if: ${{ contains(inputs.target, '-windows-') && inputs.azure-tenant-id && inputs.azure-subscription-id && inputs.azure-client-id && inputs.azure-trusted-signing-account-name && inputs.azure-certificate-profile-name }}
uses: azure/trusted-signing-action@0d74250c661747df006298d0fb49944c10f16e03 # v0.5.1
with:
endpoint: https://eus.codesigning.azure.net/
trusted-signing-account-name: ${{ inputs.azure-trusted-signing-account-name }}
certificate-profile-name: ${{ inputs.azure-certificate-profile-name }}
files: ${{ github.workspace }}\target\${{ inputs.target }}\release\gleam.exe
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
- name: Build archive
id: build
shell: bash
run: |
case "$TARGET" in
*windows*)
ARCHIVE="gleam-$VERSION-$TARGET.zip"
cp "target/$TARGET/release/gleam.exe" "gleam.exe"
7z a "$ARCHIVE" "gleam.exe"
rm gleam.exe
;;
wasm*)
ARCHIVE="gleam-$VERSION-browser.tar.gz"
tar -C compiler-wasm/pkg/ -czvf $ARCHIVE .
rm -rf compiler-wasm/pkg/
;;
*)
ARCHIVE="gleam-$VERSION-$TARGET.tar.gz"
cp "target/$TARGET/release/gleam" "gleam"
tar -czvf "$ARCHIVE" "gleam"
rm gleam
;;
esac
echo "archive=$ARCHIVE" >> $GITHUB_OUTPUT
env:
TARGET: "${{ inputs.target }}"
VERSION: "${{ inputs.version }}"
- name: Ensure binary successfully boots
if: ${{ inputs.expected-binary-architecture }}
shell: bash
run: |
case "$TARGET" in
*windows*)
7z x "$ARCHIVE"
./gleam.exe --version
;;
aarch64*)
echo "We cannot test an ARM binary on a AMD64 runner"
;;
*)
tar -xvzf "$ARCHIVE"
./gleam --version
;;
esac
env:
TARGET: "${{ inputs.target }}"
ARCHIVE: "${{ steps.build.outputs.archive }}"
# By using `cargo-sbom``, we create two formats of Build SBoMs
# (SPDX and CycloneDX) for the gleam build.
# We store those files alongside the build artifacts on the GitHub Release
# page and also use them to create Container SBoMs for Docker images.
#
# Why is this helpful?
# * It gives us and our users complete visibility into which dependencies
# and which versions are present in the build / container image.
# * The SBoM can be fed into vulnerability scanners so that anyone can check
# if any dependencies have known security issues.
- name: Generate Build SBoM
shell: bash
run: |
cargo-sbom \
--output-format spdx_json_2_3 \
> "$ARCHIVE.sbom.spdx.json"
cargo-sbom \
--output-format cyclone_dx_json_1_4 \
> "$ARCHIVE.sbom.cyclonedx.json"
env:
ARCHIVE: "${{ steps.build.outputs.archive }}"
- name: Hash Build Archive
shell: bash
run: |
openssl dgst -r -sha256 -out "$ARCHIVE".sha256 "$ARCHIVE"
openssl dgst -r -sha512 -out "$ARCHIVE".sha512 "$ARCHIVE"
env:
ARCHIVE: "${{ steps.build.outputs.archive }}"
# We provide SLSA Provenance for the distribution build. This attests to
# where, when, and how the asset or image was built.
#
# Why is this helpful?
# * It provides a record of the exact Git commit (git sha) and GitHub
# Actions workflow used to produce a release.
# * Users or automated systems can verify that the artifact you’re
# downloading was indeed built from the official Gleam repo, on a
# particular date, using the correct pipeline and not tampered with later.
# * The attestation is published to a transparency log for extra
# verification: https://github.com/gleam-lang/gleam/attestations/
#
# For more information, see:
# * https://github.com/actions/attest
# * https://github.com/actions/attest-sbom
- name: Attest Distribution Assets with SBoM
id: attest-sbom
uses: actions/attest-sbom@v2
with:
subject-path: |
${{ steps.build.outputs.archive }}
${{ steps.build.outputs.archive }}.sbom.spdx.json
${{ steps.build.outputs.archive }}.sbom.cyclonedx.json
sbom-path: "${{ steps.build.outputs.archive }}.sbom.spdx.json"
# The provenanve information is stored alongside the built artifact with
# the `.sigstore` file extension.
- name: "Copy SBoM provenance"
id: sbom-provenance
shell: bash
run: |
cp "$ATTESTATION" "$ARCHIVE.sigstore"
env:
ARCHIVE: "${{ steps.build.outputs.archive }}"
ATTESTATION: "${{ steps.attest-sbom.outputs.bundle-path }}"
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: release-${{ matrix.target }}
path: |
${{ steps.build.outputs.archive }}
${{ steps.build.outputs.archive }}.sha256
${{ steps.build.outputs.archive }}.sha512
${{ steps.build.outputs.archive }}.sigstore
${{ steps.build.outputs.archive }}.sbom.spdx.json
${{ steps.build.outputs.archive }}.sbom.cyclonedx.json
overwrite: true
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
labels: []
schedule:
interval: monthly
open-pull-requests-limit: 10
# Rust:
- package-ecosystem: "cargo"
directory: "/"
labels: []
schedule:
interval: "monthly"
- package-ecosystem: "cargo"
directory: "/compiler-cli"
labels: []
schedule:
interval: "monthly"
- package-ecosystem: "cargo"
directory: "/compiler-core"
labels: []
schedule:
interval: "monthly"
- package-ecosystem: "cargo"
directory: "/compiler-wasm"
labels: []
schedule:
interval: "monthly"
- package-ecosystem: "cargo"
# Does not have any custom deps right now,
# but can add them in the future:
directory: "/test-package-compiler"
labels: []
schedule:
interval: "monthly"
================================================
FILE: .github/pull_request_template.md
================================================
- [ ] The changes in this PR have been discussed beforehand in an issue
- [ ] The issue for this PR has been linked
- [ ] Tests have been added for new behaviour
- [ ] The changelog has been updated for any user-facing changes
================================================
FILE: .github/workflows/ci.yaml
================================================
name: ci
on:
pull_request:
paths-ignore:
- "CHANGELOG.md"
- "docs/**"
push:
branches:
- main
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_DEBUG: 0
CARGO_PROFILE_TEST_DEBUG: 0
CROSS_CONTAINER_UID: 0
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
test:
name: test
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
toolchain: [stable]
target:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-gnu
- aarch64-unknown-linux-musl
- x86_64-apple-darwin
- x86_64-pc-windows-msvc
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
binary: x86-64
cargo-tool: cargo
run-integration-tests: true
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
binary: x86-64
cargo-tool: cross
run-integration-tests: true
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
binary: aarch64
cargo-tool: cross
run-integration-tests: false # Cannot run aarch64 binaries on x86_64
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
binary: aarch64
cargo-tool: cross
run-integration-tests: false # Cannot run aarch64 binaries on x86_64
- os: macos-15-intel # intel
target: x86_64-apple-darwin
binary: x86_64
cargo-tool: cargo
run-integration-tests: true
- os: macos-latest # aarch64
toolchain: stable
target: aarch64-apple-darwin
binary: arm64
cargo-tool: cargo
run-integration-tests: true
- os: windows-2022
target: x86_64-pc-windows-msvc
binary: x86-64
cargo-tool: cargo
run-integration-tests: true
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install musl-tools incl. musl-gcc
uses: awalsh128/cache-apt-pkgs-action@v1
with:
# musl-tools provide `musl-gcc` which is required for `ring` which is required for `rustls` et al.
packages: musl-tools
version: 1.1
if: ${{ matrix.target == 'x86_64-unknown-linux-musl'}}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.toolchain }}
target: ${{ matrix.target }}
- name: Install Erlang
uses: erlef/setup-beam@v1
with:
otp-version: "28.0.1"
elixir-version: "1.18"
rebar3-version: "3"
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "20"
- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: "2.2"
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.2"
- name: Handle Rust dependencies caching
uses: Swatinem/rust-cache@v2
with:
key: v1-${{ matrix.target }}
- name: Install Gleam
uses: clechasseur/rs-cargo@v4
with:
command: install
args: "--path gleam-bin --target ${{ matrix.target }} --debug --locked --force"
tool: ${{ matrix.cargo-tool }}
if: ${{ matrix.run-integration-tests }}
- name: Verify binary architecture
shell: bash
run: |
BINARY_PATH="${CARGO_HOME}/bin/gleam"
if [[ "${{ matrix.target }}" == *"windows"* ]]; then
BINARY_PATH="${BINARY_PATH}.exe"
fi
if ! file -b "$BINARY_PATH" | grep -q "${{ matrix.binary }}"; then
echo "error: Architecture mismatch"
echo "Expected architecture: '${{ matrix.binary }}'"
echo "Found binary type: '$(file -b "$BINARY_PATH")'"
exit 1
fi
echo "ok: Architecture match"
if: ${{ matrix.run-integration-tests }}
- name: Run tests
uses: clechasseur/rs-cargo@v4
with:
command: test
# We only want to run the `test-output` when running integration tests.
# There's a caveat though: when `cargo-tool` is `cross` it uses a container
# and would result in these integration tests failing due to not finding
# the escript binary. So, in case `cargo-tool != cargo` we'll skip the
# `test-output` tests as well.
args: >-
--workspace
--target ${{ matrix.target }}
${{ ((matrix.run-integration-tests && matrix.cargo-tool == 'cargo')
&& ' ')
|| '--exclude test-output' }}
tool: ${{ matrix.cargo-tool }}
- name: test/project_erlang (non-windows)
run: |
gleam run && cd src && gleam run && cd ..
gleam check
gleam test && cd src && gleam test && cd ..
gleam docs build
working-directory: ./test/project_erlang
if: ${{ runner.os != 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang (windows)
run: |
gleam run && cd src && gleam run && cd ..
gleam check
gleam test && cd src && gleam test && cd ..
gleam docs build
working-directory: ./test/project_erlang_windows
if: ${{ runner.os == 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang export erlang-shipment (non-windows)
run: |
gleam export erlang-shipment
./build/erlang-shipment/entrypoint.sh run
working-directory: ./test/project_erlang
if: ${{ runner.os != 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang export erlang-shipment (windows)
run: |
gleam export erlang-shipment
.\build\erlang-shipment\entrypoint.ps1 run
working-directory: ./test/project_erlang_windows
if: ${{ runner.os == 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang export package-interface (non-windows)
run: |
gleam export package-interface --out="interface.json"
cat interface.json
working-directory: ./test/project_erlang
if: ${{ runner.os != 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang export package-interface (windows)
run: |
gleam export package-interface --out="interface.json"
cat interface.json
working-directory: ./test/project_erlang_windows
if: ${{ runner.os == 'Windows' && matrix.run-integration-tests }}
- name: test/project_erlang export package-information
run: |
gleam export package-information --out="gleam.json"
cat gleam.json
working-directory: ./test/project_erlang
if: ${{ matrix.run-integration-tests }}
- name: test/external_only_javascript
run: ./test.sh
working-directory: ./test/external_only_javascript
if: ${{ matrix.run-integration-tests }}
env:
GLEAM_COMMAND: gleam
- name: test/external_only_erlang
run: ./test.sh
working-directory: ./test/external_only_erlang
if: ${{ matrix.run-integration-tests }}
env:
GLEAM_COMMAND: gleam
- name: test/root_package_not_compiled_when_running_dep
run: ./test.sh
working-directory: ./test/root_package_not_compiled_when_running_dep
if: ${{ matrix.run-integration-tests }}
env:
GLEAM_COMMAND: gleam
- name: test/erlang_shipment_no_dev_deps
run: ./test.sh
working-directory: ./test/erlang_shipment_no_dev_deps
if: ${{ matrix.run-integration-tests }}
env:
GLEAM_COMMAND: gleam
- name: test/project_javascript
run: |
gleam run
gleam check
gleam test
gleam docs build
working-directory: ./test/project_javascript
if: ${{ matrix.run-integration-tests }}
- name: test/project_path_deps
run: |
gleam update
gleam check
working-directory: ./test/project_path_deps/project_a
if: ${{ matrix.run-integration-tests }}
- name: test/project_git_deps
run: |
gleam update
gleam check
working-directory: ./test/project_git_deps
if: ${{ matrix.run-integration-tests }}
- name: Test project generation
run: |
gleam new lib_project
cd lib_project
gleam run
gleam test
# Test adding of deps
gleam add exception # No specifier
gleam add gleam_http@4 # Version specifier
gleam test
# Test documentation generation
gleam docs build
# Assert that module metadata has been written
ls build/dev/erlang/lib_project/_gleam_artefacts/lib_project.cache
# Assert that HTML docs and their assets have been written
ls build/dev/docs/lib_project/index.html
ls build/dev/docs/lib_project/lib_project.html
ls build/dev/docs/lib_project/css/atom-one-light.min.css
ls build/dev/docs/lib_project/css/atom-one-dark.min.css
ls build/dev/docs/lib_project/css/index.css
ls build/dev/docs/lib_project/js/highlight.min.js
ls build/dev/docs/lib_project/js/highlightjs-gleam.js
ls build/dev/docs/lib_project/js/highlightjs-erlang.min.js
ls build/dev/docs/lib_project/js/highlightjs-elixir.min.js
ls build/dev/docs/lib_project/js/highlightjs-javascript.min.js
ls build/dev/docs/lib_project/js/highlightjs-typescript.min.js
ls build/dev/docs/lib_project/js/lunr.min.js
ls build/dev/docs/lib_project/js/index.js
ls build/dev/docs/lib_project/fonts/karla-v23-bold-latin-ext.woff2
ls build/dev/docs/lib_project/fonts/karla-v23-bold-latin.woff2
ls build/dev/docs/lib_project/fonts/karla-v23-regular-latin-ext.woff2
ls build/dev/docs/lib_project/fonts/karla-v23-regular-latin.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-cyrillic-ext.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-cyrillic.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-greek-ext.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-greek.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-latin-ext.woff2
ls build/dev/docs/lib_project/fonts/ubuntu-mono-v15-regular-latin.woff2
if: ${{ matrix.run-integration-tests }}
test-wasm:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: wasm32-unknown-unknown
- uses: actions/setup-node@v6
with:
node-version: "20"
- name: Install wasm-pack
run: |
curl -sSL https://rustwasm.github.io/wasm-pack/installer/init.sh | sh
- name: Run wasm tests
run: wasm-pack test --node compiler-wasm
rustfmt:
name: rustfmt
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt
- run: cargo fmt --all -- --check
validate:
name: validate
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Ensure no merge commits
uses: NexusPHP/no-merge-commits@v2.2.1
if: github.event_name == 'pull_request'
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Install cargo-deny
run: |
set -e
curl -L https://github.com/EmbarkStudios/cargo-deny/releases/download/0.18.6/cargo-deny-0.18.6-x86_64-unknown-linux-musl.tar.gz | tar xzf -
mv cargo-deny-*-x86_64-unknown-linux-musl/cargo-deny cargo-deny
echo `pwd` >> $GITHUB_PATH
- name: Validate deps
run: cargo deny check
lint-build:
name: lint-build
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: clippy
- name: Handle Rust dependencies caching
uses: Swatinem/rust-cache@v2
with:
key: v1-linux-gnu
- name: Run linter
run: cargo clippy --workspace
- run: cargo build
- name: Upload artifact (Ubuntu)
uses: actions/upload-artifact@v7
with:
name: gleam
path: target/debug/gleam
test-projects:
name: test-projects
needs: lint-build
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install Erlang
uses: erlef/setup-beam@v1
with:
otp-version: "26.1"
elixir-version: "1.16.1"
rebar3-version: "3"
- name: Download Gleam binary from previous job
uses: actions/download-artifact@v8
with:
name: gleam
path: ./test
- name: Configure test projects to use Gleam binary
run: |
echo $PWD/ >> $GITHUB_PATH
chmod +x ./gleam
sed -i 's/cargo run --quiet --/gleam/' */Makefile
sed -i 's/cargo run --/gleam/' */Makefile
working-directory: ./test
- name: test/language Erlang
run: make clean erlang
working-directory: ./test/language
- name: test/language JavaScript with NodeJS
run: make clean nodejs
working-directory: ./test/language
- name: test/language JavaScript with Deno
run: make clean deno
working-directory: ./test/language
- name: test/language JavaScript with Bun
run: make clean bun
working-directory: ./test/language
- name: test/compile_package0
run: make
working-directory: ./test/compile_package0
- name: test/compile_package1
run: make
working-directory: ./test/compile_package1
- name: Test JavaScript prelude
run: make
working-directory: ./test/javascript_prelude
- name: Test export of hex tarball
run: make test
working-directory: ./test/hextarball
- name: test/running_modules
run: make test-all
working-directory: ./test/running_modules
- name: test/multi_namespace
run: ./test.sh
working-directory: ./test/multi_namespace
- name: test/multi_namespace_not_top_level
run: ./test.sh
working-directory: ./test/multi_namespace_not_top_level
- name: Test FFI in subdirectories
run: make
working-directory: ./test/subdir_ffi
- name: test/unicode_path
run: make
working-directory: ./test/unicode_path ⭐
- name: test/assert
run: make test-all
working-directory: ./test/assert
- name: Test publishing with default main
run: ./test.sh
working-directory: ./test/publishing_default_main
================================================
FILE: .github/workflows/release-containers.yaml
================================================
name: release-containers
on:
release:
types:
- "published"
permissions:
packages: write
id-token: write
attestations: write
jobs:
publish-container-images:
name: publish-container-images
runs-on: ubuntu-latest
# Covered by `release-nightly.yaml`
if: ${{ github.event.release.tag_name != 'nightly' }}
strategy:
matrix:
base-image:
- scratch
- erlang
- erlang-slim
- erlang-alpine
- elixir
- elixir-slim
- elixir-alpine
- node
- node-slim
- node-alpine
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
sparse-checkout: |
.github/actions
containers
- name: "Build & Push Container"
uses: "./.github/actions/build-container"
with:
release-id: ${{ github.event.release.id }}
version: ${{ github.ref_name }}
================================================
FILE: .github/workflows/release-nightly.yaml
================================================
name: release-nightly
on:
workflow_dispatch:
schedule:
- cron: "45 0 * * *"
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
permissions:
contents: write
packages: write
id-token: write
attestations: write
jobs:
# Check if the actions already ran in the last 24 hours
# * If yes: Don't run again
# * If no: Clean out existing release assets
prepare-nightly:
runs-on: ubuntu-latest
name: Prepare Nightly Release
outputs:
should-run: ${{ steps.should-run.outputs.should-run }}
# TODO: Re-add
# if: ${{ github.repository == 'gleam-lang/gleam' }}
steps:
- uses: actions/checkout@v6
- name: print latest_commit
run: echo ${{ github.sha }}
- id: should-run
continue-on-error: true
name: check latest commit is less than a day
if: ${{ github.event_name == 'schedule' }}
run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "should-run=false" >> $GITHUB_OUTPUT
- name: Delete old release assets
uses: mknejp/delete-release-assets@v1
if: ${{ steps.should-run != 'false' }}
with:
token: ${{ github.token }}
tag: nightly
fail-if-no-assets: false
fail-if-no-release: false
assets: |
*.zip
*.tar.gz
*.sha256
*.sha512
*.sigstore
*.sbom.*.json
build-release:
name: build-release
runs-on: ${{ matrix.os }}
environment: release
outputs:
release-id: ${{ steps.release.outputs.id }}
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
- x86_64-apple-darwin
- aarch64-apple-darwin
- x86_64-pc-windows-msvc
- aarch64-pc-windows-msvc
toolchain: [ stable ]
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
expected-binary-architecture: x86-64
cargo-tool: cross
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
expected-binary-architecture: aarch64
cargo-tool: cross
- os: macos-15-intel
target: x86_64-apple-darwin
expected-binary-architecture: x86_64
cargo-tool: cargo
- os: macos-latest
target: aarch64-apple-darwin
expected-binary-architecture: arm64
cargo-tool: cargo
- os: windows-2022
target: x86_64-pc-windows-msvc
expected-binary-architecture: x86-64
cargo-tool: cargo
- os: windows-11-arm
target: aarch64-pc-windows-msvc
expected-binary-architecture: arm64
cargo-tool: cargo
- os: ubuntu-latest
target: wasm32-unknown-unknown
cargo-tool: wasm-pack
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Update versions
shell: bash
run: ./bin/add-nightly-suffix-to-versions.sh
- name: "Build Archive"
id: build
uses: "./.github/actions/build-release"
with:
version: nightly
toolchain: ${{ matrix.toolchain }}
target: ${{ matrix.target }}
cargo-tool: ${{ matrix.cargo-tool }}
expected-binary-architecture: ${{ matrix.expected-binary-architecture }}
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-trusted-signing-account-name: ${{ vars.AZURE_TRUSTED_SIGNING_ACCOUNT_NAME }}
azure-certificate-profile-name: ${{ vars.AZURE_CERTIFICATE_PROFILE_NAME }}
- name: Upload release archive
id: release
# https://github.com/softprops/action-gh-release/issues/445
# uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@f2352b97da0095b4dbbd885a81023e3deabf4fef
with:
draft: false
prerelease: true
fail_on_unmatched_files: true
files: "${{ steps.build.outputs.files }}"
tag_name: nightly
name: "Nightly"
body: |
A build that runs every night following changes to the main branch. Contains all the latest features and changes, but there is a higher chance of instability, bugs, and unfinished features.
The assets are updated but the tag is not, so if you view the commit or download the source from below you will not get the correct code.
build-container-images:
name: build-container-images
needs: [ prepare-nightly, build-release ]
runs-on: ubuntu-latest
if: ${{ needs.prepare-nightly.outputs.should-run != 'false' }}
strategy:
matrix:
base-image:
- scratch
- erlang
- erlang-slim
- erlang-alpine
- elixir
- elixir-slim
- elixir-alpine
- node
- node-slim
- node-alpine
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
sparse-checkout: |
.github/actions
containers
- name: "Build & Push Container"
uses: "./.github/actions/build-container"
with:
version: nightly
release-id: ${{ needs.build-release.outputs.release-id }}
================================================
FILE: .github/workflows/release.yaml
================================================
name: release
on:
push:
tags:
- "v*"
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
permissions:
contents: read
jobs:
build-release:
name: build-release
runs-on: ${{ matrix.os }}
environment: release
permissions:
id-token: write
attestations: write
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
- x86_64-apple-darwin
- aarch64-apple-darwin
- x86_64-pc-windows-msvc
- aarch64-pc-windows-msvc
toolchain: [ stable ]
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
expected-binary-architecture: x86-64
cargo-tool: cross
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
expected-binary-architecture: aarch64
cargo-tool: cross
- os: macos-15-intel
target: x86_64-apple-darwin
expected-binary-architecture: x86_64
cargo-tool: cargo
- os: macos-latest
target: aarch64-apple-darwin
expected-binary-architecture: arm64
cargo-tool: cargo
- os: windows-2022
target: x86_64-pc-windows-msvc
expected-binary-architecture: x86-64
cargo-tool: cargo
- os: windows-11-arm
target: aarch64-pc-windows-msvc
expected-binary-architecture: arm64
cargo-tool: cargo
- os: ubuntu-latest
target: wasm32-unknown-unknown
cargo-tool: wasm-pack
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: "Build Archive"
id: build
uses: "./.github/actions/build-release"
with:
version: ${{ github.ref_name }}
toolchain: ${{ matrix.toolchain }}
target: ${{ matrix.target }}
cargo-tool: ${{ matrix.cargo-tool }}
expected-binary-architecture: ${{ matrix.expected-binary-architecture }}
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-trusted-signing-account-name: ${{ vars.AZURE_TRUSTED_SIGNING_ACCOUNT_NAME }}
azure-certificate-profile-name: ${{ vars.AZURE_CERTIFICATE_PROFILE_NAME }}
create-release:
name: create-release
needs: ['build-release']
runs-on: ubuntu-latest
environment: release
permissions:
contents: write
steps:
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
pattern: release-*
merge-multiple: true
- name: Create release
env:
GITHUB_TOKEN: '${{ github.token }}'
REPOSITORY: '${{ github.repository }}'
TITLE: '${{ github.ref_name }}'
TAG_NAME: '${{ github.ref_name }}'
NOTES: '${{ github.server_url }}/${{ github.repository }}/blob/${{ github.ref_name }}/CHANGELOG.md'
run: |
gh release create \
--repo "$REPOSITORY" \
--title "$TITLE" \
--notes "$NOTES" \
--draft \
--verify-tag \
${{ contains(github.ref_name, '-rc') && '--prerelease' || '' }} \
"$TAG_NAME" \
gleam-*
================================================
FILE: .gitignore
================================================
**/*.rs.bk
**/*.beam
/target/
/tmp
.idea/
.idea/*
erl_crash.dump
*.lock
node_modules/
compiler-cli/build/
================================================
FILE: .vscode/settings.json
================================================
{
// Don't show these files in search
"search.exclude": {
// Test snapshots
"**/*.snap": true,
// Generated code
"compiler-core/generated/**": true,
// Images
"images/**": true
},
"cSpell.words": [
"camino",
"cksum",
"codegen",
"ecow",
"flate",
"hardlinking",
"HEXPM",
"insta",
"itertools",
"NOCOLOUR",
"reqwest",
"rustfmt",
"subpackage",
"Telem",
"Unretire",
"Untar",
"walkdir"
],
"cSpell.language": "en,uk,en-GB,en-US"
}
================================================
FILE: .well-known/funding-manifest-urls
================================================
https://gleam.run/funding.json
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## Unreleased
### Compiler
- The compiler now supports list prepending in constants. For example:
```gleam
pub const viviparous_mammals = ["dog", "cat", "human"]
pub const all_mammals = ["platypus", "echidna", ..viviparous_mammals]
```
([Surya Rose](https://github.com/GearsDatapacks))
- The analysis of record update expressions is now fault tolerant, meaning the
compiler will no longer stop reporting errors at the first invalid field it
finds.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Build tool
- When publishing, the package manager now uses the full term instead of the
shorthand "MFA" in the prompt and error message.
([Luka Ivanović](https://github.com/luka-hash))
### Language server
- The "extract variable" code action can now pick better names for variables in
case branches and blocks, ignoring unrelated names of variables in other
branches.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The language server now has a code action to replace a `_` in a type
annotation with the corresponding type. For example:
```gleam
pub fn load_user(id: Int) -> Result(_, Error) {
// ^
// Triggering the code action here
sql.find_by_id(id)
|> result.map_error(CannotLoadUser)
}
```
Triggering the code action over the `_` will result in the following code:
```gleam
pub fn load_user(id: Int) -> Result(User, Error) {
sql.find_by_id(id)
|> result.map_error(CannotLoadUser)
}
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The language server now shows completions for the labelled argument of a
record when writing a record update.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Formatter
### Bug fixes
- Fixed a bug where the compiler would crash when trying to read the cache for
modules containing large constants.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where `BitArray$BitArray$data` constructed a `DataView` with
incorrect byte length instead of the slice's actual size, causing sliced bit
arrays to include extra bytes from the underlying buffer on JavaScript.
([John Downey](https://github.com/jtdowney))
- The compiler now parses UTF-8 source files with a byte-order mark correctly,
instead of raising an error.
([Lucy McPhail](https://github.com/lucymcphail))
## v1.15.1 - 2026-03-17
### Bug fixes
- Fixed a bug where `BitArray$BitArray$data` constructed a `DataView` with
offset 0 instead of the slice's actual byte offset, causing sliced bit arrays
to read from the wrong position in the underlying buffer on JavaScript.
([John Downey](https://github.com/jtdowney))
- Fixed a bug where the "Add missing type parameter" code action could be
triggered on types that do not exist instead of type variables.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
hello@gleam.run.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Gleam
Thanks for contributing to Gleam!
Before continuing please read our [code of conduct][code-of-conduct] which all
contributors are expected to adhere to.
[code-of-conduct]: https://github.com/gleam-lang/gleam/blob/main/CODE_OF_CONDUCT.md
## Contributing bug reports
If you have found a bug in Gleam please check to see if there is an open
ticket for this problem on [our GitHub issue tracker][issues]. If you cannot
find an existing ticket for the bug please open a new one.
[issues]: https://github.com/gleam-lang/gleam/issues
A bug may be a technical problem such as a compiler crash or an incorrect
return value from a library function, or a user experience issue such as
unclear or absent documentation. If you are unsure if your problem is a bug
please open a ticket and we will work it out together.
## Contributing code changes
Before working on code it is suggested that you read the
[docs/compiler/README.md](docs/compiler/README.md) file.
It outlines fundamental components and design of this project.
Code changes to Gleam are welcomed via the process below.
1. Find or open a GitHub issue relevant to the change you wish to make and
comment saying that you wish to work on this issue. If the change
introduces new functionality or behaviour this would be a good time to
discuss the details of the change to ensure we are in agreement as to how
the new functionality should work.
2. Update the [CHANGELOG.md](CHANGELOG.md) file with your changes.
3. Open a GitHub pull request with your changes and ensure the tests and build
pass on CI.
4. A Gleam team member will review the changes and may provide feedback to
work on. Depending on the change there may be multiple rounds of feedback.
5. Once the changes have been approved the code will be rebased into the
`main` branch.
## Local development
To run the compiler tests. This will require a recent stable version of Rust,
Erlang, Elixir, NodeJS, Deno, and Bun to be installed.
If you are using the Nix package manager, there's a [gleam-nix flake](https://github.com/vic/gleam-nix)
you can use for running any Gleam version or quickly obtaining a development
environment for Gleam.
```sh
cargo test
# Or if you have watchexec installed you can run them automatically
# when files change
make test-watch
```
To run the language integration tests. This will require a recent stable
version of Rust, Erlang, and NodeJS to be installed.
```sh
make language-test
```
If you don't have Rust or Cargo installed you can run the above command in a
docker sandbox. Run the command below from this directory.
```sh
docker run -v $(pwd):/opt/app -it -w /opt/app rust:latest bash
```
## Rust development
Here are some tips and guidelines for writing Rust code in the Gleam compiler:
The `GLEAM_LOG` environment variable can be used to cause the compiler to
print more information for debugging and introspection. i.e.
`GLEAM_LOG=trace`.
### Clippy linter
Your PR may fail on CI due to clippy errors. Clippy can be run locally like so:
```sh
cargo clean -p gleam
cargo clippy
```
If you have lint errors on CI but not locally upgrade your Rust version to the
latest stable.
```sh
rustup upgrade stable
```
## Operating system specific code
This project is used on FreeBSD, Linux, MacOS, OpenBSD, Windows, and presumably
other operating systems, so there is some amount of code that needs to be
different depending on which is it running on. So far this is hidden inside
dependencies, with the exception of some code for working with file paths in
tests and for setting file permissions, which is different on Windows. If you
are working in this area then you may get a CI failure relating to this for
your first attempt. If you need help resolving any issues do not hesitate to
ask.
================================================
FILE: Cargo.toml
================================================
[workspace]
resolver = "2"
members = [
"gleam-bin",
"compiler-cli",
"compiler-core",
"compiler-wasm",
"language-server",
"test-helpers-rs",
"test-output",
"test-package-compiler",
"test-project-compiler",
"language-server",
"hexpm",
]
# common dependencies
[workspace.dependencies]
# Immutable data structures
im = { version = "15", features = ["serde"] }
# Extra iter methods
itertools = "0"
# Parsing
regex = "1"
# Colours in terminal
termcolor = "1"
# Data (de)serialisation
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
# toml config file parsing
toml = "0.9"
# Enum trait impl macros
strum = { version = "0", features = ["derive"] }
# Creation of tar file archives
tar = "0"
# gzip compression
flate2 = "1"
# Logging
tracing = "0"
# Macro to work around Rust's traits not working with async. Sigh.
async-trait = "0"
# HTTP types
http = "1"
http-serde = "2.1.1"
# Async combinators for futures
futures = "0"
# Little helper to omit fields that cannot be debug printed
debug-ignore = "1"
# base encoding
base16 = "0"
# Language server protocol server plumbing
lsp-server = "0"
lsp-types = "=0.95.1"
# Compact clone-on-write vector & string type
ecow = "0"
# Drop in replacement for std::path but with only utf-8
camino = "1"
# std::error::Error definition macro
thiserror = "2"
# Test assertion errors with diffs
pretty_assertions = "1"
# Snapshot testing to make test maintenance easier
insta = { version = "1", features = ["glob"] }
# A transitive dependency needed to compile into wasm32-unknown-unknown
# See https://docs.rs/getrandom/latest/getrandom/index.html#webassembly-support
getrandom = { version = "0.2", features = ["js"] }
# Non-empty vectors
vec1 = "1"
# Pubgrub dependency resolution algorithm
pubgrub = "0.3"
# Open the user's web browser
opener = "0"
================================================
FILE: Cross.toml
================================================
[target.x86_64-unknown-linux-musl]
image = "clux/muslrust:stable"
================================================
FILE: LICENCE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2016 - present Louis Pilfold
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: Makefile
================================================
#
# Goals to be specified by user
#
.PHONY: help
help:
@cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.PHONY: build
build: ## Build the compiler
cargo build --release
.PHONY: install
install: ## Build the Gleam compiler and place it on PATH
cd gleam-bin && cargo install --path . --force --locked
.PHONY: test
test: ## Run the compiler unit tests
cargo test --quiet
cargo clippy
cd test/language && make
cd test/javascript_prelude && make test
cd test/project_erlang && cargo run clean && cargo run check && cargo run test
cd test/project_javascript && cargo run clean && cargo run check && cargo run test
cd test/project_deno && cargo run clean && cargo run check && cargo run test
cd test/hextarball && make test
cd test/running_modules && make test
cd test/subdir_ffi && make
.PHONY: insta-check-unused
insta-check-unused: ## Check for unused cargo insta snapshots
cargo insta test --unreferenced=warn
.PHONY: insta-fix-unused
insta-fix-unused: ## Remove unused cargo insta snapshots
cargo insta test --unreferenced=delete
.PHONY: language-test
language-test: ## Run the language integration tests for all targets
cd test/language && make
.PHONY: language-test-watch
language-test-watch: ## Run the language integration tests for all targets when files change
watchexec "cd test/language && make"
.PHONY: javascript-prelude-test
javascript-prelude-test: ## Run the JavaScript prelude core tests
cd test/javascript_prelude && make test
.PHONY: javascript-prelude-test-watch
javascript-prelude-test-watch: ## Run the JavaScript prelude core tests when files change
watchexec "cd test/javascript_prelude && make test"
.PHONY: test-watch
test-watch: ## Run compiler tests when files change
watchexec -e rs,toml,gleam,html "cargo test --quiet"
.PHONY: export-hex-tarball-test
export-hex-tarball-test: ## Run `gleam export hex-tarball` and verify it is created
cd test/hextarball && make test
.PHONY: benchmark
benchmark: ## Run the benchmarks
cd benchmark/list && make
# Debug print vars with `make print-VAR_NAME`
print-%: ; @echo $*=$($*)
================================================
FILE: README.md
================================================
<p align="center">
<img src="images/lucy.png" alt="Lucy, Gleam's mascot">
</p>
<p align="center">
<a href="https://github.com/gleam-lang/gleam/releases"><img src="https://img.shields.io/github/release/gleam-lang/gleam" alt="GitHub release"></a>
<a href="https://discord.gg/Fm8Pwmy"><img src="https://img.shields.io/discord/768594524158427167?color=blue" alt="Discord chat"></a>
</p>
<!-- A spacer -->
<div> </div>
Gleam is a friendly language for building type-safe systems that scale! For more
information see [the website](https://gleam.run).
## Support Gleam!
Gleam is not owned by a corporation, instead it is kindly supported by its
sponsors. If you like Gleam please consider [sponsoring the project or members
of the core team](https://gleam.run/sponsor).
Thank you so much! 💖
================================================
FILE: RELEASE.md
================================================
# Release checklist
1. Update the version in each `Cargo.toml`.
2. Update versions in `src/new.rs` for stdlib etc if required.
3. Run `make test build`.
4. Git commit, tag, push, push tags.
5. Wait for CI release build to finish.
6. Publish release on GitHub from draft made by CI.
7. Update version in `Cargo.toml` to next-dev.
8. Update clone target version in `getting-started.md` in `website`.
================================================
FILE: benchmark/list/.gitignore
================================================
*.beam
*.ez
/build
erl_crash.dump
================================================
FILE: benchmark/list/Makefile
================================================
.PHONY: build
build: clean erlang nodejs deno bun
.PHONY: clean
clean:
rm -rf build
.PHONY: erlang
erlang:
@echo test/language on Erlang
cargo run --quiet -- test --target erlang
.PHONY: nodejs
nodejs:
@echo test/language on JavaScript with Node
cargo run --quiet -- test --target javascript --runtime nodejs
.PHONY: deno
deno:
@echo test/language on JavaScript with Deno
cargo run --quiet -- test --target javascript --runtime deno
.PHONY: bun
bun:
@echo test/language on JavaScript with Bun
cargo run --quiet -- test --target javascript --runtime bun
================================================
FILE: benchmark/list/gleam.toml
================================================
name = "list"
version = "1.0.0"
description = "Benchmarks for lists"
licenses = ["Apache-2.0"]
[dependencies]
gleam_stdlib = "~> 0.28"
gleamy_bench = ">= 0.6.0 and < 1.0.0"
================================================
FILE: benchmark/list/manifest.toml
================================================
# This file was generated by Gleam
# You typically do not need to edit this file
packages = [
{ name = "gleam_stdlib", version = "0.59.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "F8FEE9B35797301994B81AF75508CF87C328FE1585558B0FFD188DC2B32EAA95" },
{ name = "gleamy_bench", version = "0.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleamy_bench", source = "hex", outer_checksum = "DEF68E4B097A56781282F0F9D48371A0ABBCDDCF89CAD05B28C3BEDD6B2E8DF3" },
]
[requirements]
gleam_stdlib = { version = "~> 0.28" }
gleamy_bench = { version = ">= 0.6.0 and < 1.0.0" }
================================================
FILE: benchmark/list/src/list.gleam
================================================
pub fn main() {
Nil
}
================================================
FILE: benchmark/list/test/benchmarks.gleam
================================================
import gleamy/bench
import gleam/io
import gleam/list
pub fn print_results(results: List(bench.BenchResults)) {
results
|> list.map(fn(result) {
result
|> bench.table([bench.IPS, bench.Min, bench.P(99)])
|> io.println()
})
}
================================================
FILE: benchmark/list/test/list_test.gleam
================================================
import benchmarks.{print_results}
import gleam/list
import gleamy/bench
pub fn main() {
print_results([bench_odd_nums_between(), bench_count_ones(), bench_slice()])
}
fn bench_odd_nums_between() -> bench.BenchResults {
let odd_nums_between = fn(args) {
let #(start, end) = args
odd_nums_between(start, end, [])
}
bench.run(
[
bench.Input("[0, 100)", #(0, 100)),
bench.Input("[0, 1000)", #(0, 1000)),
bench.Input("[0, 10_000)", #(0, 10_000)),
bench.Input("[0, 100_000)", #(0, 100_000)),
bench.Input("[0, 1_000_000)", #(0, 1_000_000)),
],
[bench.Function("odd_nums_between", odd_nums_between)],
[bench.Duration(1000), bench.Warmup(100)],
)
}
/// Returns a list of numbers from `start` up to, but not including, `end`.
fn odd_nums_between(start: Int, end: Int, acc: List(Int)) -> List(Int) {
case start {
start if start >= end -> list.reverse(acc)
_ -> {
let acc = case start {
n if n % 2 == 1 -> [n, ..acc]
_ -> acc
}
odd_nums_between(start + 1, end, acc)
}
}
}
fn bench_count_ones() -> bench.BenchResults {
let create_list = fn(size) {
list.range(0, size)
|> list.map(fn(n) {
case n {
_ if n % 3 == 0 -> 1
_ -> 0
}
})
}
let count_ones = fn(list) { count_ones(list, 0) }
bench.run(
[
bench.Input("100 numbers", create_list(100)),
bench.Input("1000 numbers", create_list(1000)),
bench.Input("10_000 numbers", create_list(10_000)),
bench.Input("100_000 numbers", create_list(100_000)),
bench.Input("1_000_000 numbers", create_list(1_000_000)),
],
[bench.Function("count_ones", count_ones)],
[bench.Duration(1000), bench.Warmup(100)],
)
}
/// Counts the number of ones in a list.
fn count_ones(list: List(Int), count: Int) -> Int {
case list {
[] -> count
[1, ..tail] -> count_ones(tail, count + 1)
[_, ..tail] -> count_ones(tail, count)
}
}
fn bench_slice() -> bench.BenchResults {
let list = list.range(0, 1_000_000)
let slice = fn(args) {
let #(list, start, end) = args
slice(list, start, end, [])
}
bench.run(
[
bench.Input("[0, 1000)", #(list, 0, 1000)),
bench.Input("[0, 10_000)", #(list, 0, 10_000)),
bench.Input("[0, 100_000)", #(list, 0, 100_000)),
bench.Input("[999_000, 1_000_000)", #(list, 999_000, 1_000_000)),
bench.Input("[990_000, 1_000_000)", #(list, 990_000, 1_000_000)),
bench.Input("[900_000, 1_000_000)", #(list, 900_000, 1_000_000)),
bench.Input("[0, 1_000_000)", #(list, 0, 1_000_000)),
],
[bench.Function("slice", slice)],
[bench.Duration(1000), bench.Warmup(100)],
)
}
/// Slices a list.
fn slice(list: List(Int), start: Int, end: Int, acc: List(Int)) -> List(Int) {
case list {
// If the first element is before the slice, skip it.
[_, ..tail] if start > 0 -> {
slice(tail, start - 1, end - 1, acc)
}
// If the first element is within the slice, add it to the accumulator.
[head, ..tail] if end > 0 -> {
slice(tail, start - 1, end - 1, [head, ..acc])
}
// Otherwise, return the accumulator.
_ -> list.reverse(acc)
}
}
================================================
FILE: bin/add-nightly-suffix-to-versions.sh
================================================
#!/bin/sh
#
# Add the `-nightly-YYYYMMDD` suffix the version of all Rust crates in the
# workspace. Used by the nightly build.
#
set -e
find . -name Cargo.toml -exec \
sed -i "" -e "s/^version = \"\([^\"]*\)\"$/version = \"\1-nightly-$(date +%Y%m%d)\"/" {} \;
================================================
FILE: changelog/v1.1.md
================================================
# Changelog
## v1.1.0 - 2024-04-16
### Formatter
- Fixed a bug where the first subject of a case expression clause would be
indented more than necessary.
## v1.1.0-rc3 - 2024-04-12
### Formatter
- Fixed a bug where the `@internal` annotation wouldn't be displayed.
- Fixed a bug where a record update's arguments would be incorrectly split on
multiple lines.
## v1.1.0-rc2 - 2024-04-10
### Compiler
- Fixed a bug on the JavaScript target where variables named `debugger`, which
is a JavaScript keyword, were not being renamed, leading to runtime errors.
### Formatter
- Fixed a bug where comments would be moved out of an empty bit array.
- Fixed a bug where the formatter could add a trailing comma inside empty
bit arrays, generating invalid syntax.
- Revert the warning about internal types being exposed in a package's public
API.
### Build tool
- Revert the change that would make the build tool refuse to publish a package
that exposes an internal type in its public API.
## v1.1.0-rc1 - 2024-04-08
### Compiler
- The `@internal` attribute can now be used to annotate definitions.
This will hide those definitions from the generated documentation,
autocompletions and the exported module interface.
- Prepending to lists in JavaScript (`[x, ..xs]` syntax) has been optimised.
- Function stubs are no longer generated for functions that do not have an
implementation for the current targeting being compiled for.
- Fixed a bug where some functions would not result in a compile error when
compiled for a target that they do not support.
- Fixed a bug where sometimes a warning would not be emitted when a result is
discarded.
- Fixed a bug with JavaScript code generation of pattern matching guards.
- URLs in error messages have been updated for the new language tour.
- Improved error message when erroneously trying to append items to a list using
the spread syntax (like `[..rest, last]`).
- Generate [type references](https://www.typescriptlang.org/docs/handbook/triple-slash-directives.html#-reference-types-)
when compiling to JavaScript with TypeScript definitions enabled.
- Fix a bug where JavaScript code generation would not properly return the
result of nested blocks.
- Fix a bug where JavaScript code generation would not properly handle functions
returned by blocks.
- Fix a bug where Erlang code generation would not properly handle list case
patterns with no head and a spread tail.
- The compiler will now raise a warning if you're pattern matching on tuple
literals and suggest you use multiple subjects instead.
- Fixed a bug where JavaScript code generation would incorrectly parenthesise a
return statement.
- Nested tuple access (`tuple.0.1`) now parses successfully.
- Error messages are more clear about expecting values instead of types.
- Fixed a bug where pattern matching on a string would cause the program to
crash on the JavaScript target.
- A warning is now emitted when defining an opaque external type.
- Improve error message when using incorrect quotes (`'`) to define a string
- Fixed a bug where Erlang string prefix patterns could generate invalid Erlang.
- Fixed string prefix matching producing wrong results on the JavaScript target
when the prefix had a Unicode codepoint escape sequence (`\u{...}`).
- Improved error message for wrong patterns using constructors from other
modules.
- Fixed a bug on the JavaScript target where variables bound by patterns, if
used within a bit array literal inside a `case` clause's guard, would be used
before they were defined, leading to a runtime error when evaluating the
`case` expression.
- Improved error messages when failing to parse a series of things.
- A warning is now raised for unused binary operations, records, record access
and record updates.
- Fixed a bug when using constant as the size option parameter
for `BitArray` caused unknown variable exception.
- Improved recommendations on error messages.
- Improved error message for `BitArray` segment sizes.
- A warning is now raised when an internal type is accidentally exposed in a
package's public API.
- Fixed the error message when using `panic` on the JavaScript target: it now
correctly identifies the error variant as a `panic` instead of a `todo`.
- Fixed a bug on the JavaScript target where empty lists with little space
available could compile to a conversion from the array `[ , ]`, causing them
to wrongly have a length of one (the array has a single `undefined` element).
### Formatter
- The formatting of case expressions with multiple subjects has been improved.
- Fixed a bug where the formatter would move comments from the end of bounded
expressions like lists, tuples, case expressions or function calls.
- Fixed a bug where a record update's arguments would not be indented correctly.
- Fixed a bug where function call arguments, tuple items and list items would be
needlessly indented if preceded by a comment.
- Line endings other than `\n` are now handled by the formatter, preserving
blank lines and converting them to `\n`.
- The formatter can now format groups of imports alphabetically.
- Fixed a bug where comments would be moved out of an empty list.
- Fixed a bug where pipes and binary operations in function calls would be
nested more than necessary.
- Improved formatting of comments in binary operation chains.
### Build tool
- Added support for the [Bun](https://bun.sh/) runtime when compiling to
JavaScript by using `gleam run --target javascript --runtime bun`
- Allow compilation of packages that require `"rebar"` using the rebar3
compiler.
- A warning is now emitted if there is a `.gleam` file with a path that would be
invalid as a module name.
- The `~> x.y` version constraint syntax has been dropped in favour of
`> x.y.z and <= xx.0.0` syntax in `gleam add` and `gleam new`, for clarity.
- New projects are created with the GitHub `actions/checkout` v4 action.
- Fixed a bug where bit arrays would break syntax highlighting in the generated
HTML documentation.
- Dependencies that use Erlang-only bit options can now compile on JavaScript,
though the functions that use them will not be available for use in the root
package.
- The output format of the command line help messages have been changed
slightly.
- The command line help text now lists valid targets and runtimes.
- Generated documentation no longer exposes the constructors of opaque types,
no longer exposes the values of constants, and indicates which types are
opaque.
- Generated HTML documentation now includes a link to the package on Hex.
- Terminal colors can now be forced by setting the `FORCE_COLOR` environment
variable to any non-empty value.
- Rust's Reqwest's `webpki-roots` are now used for TLS verification.
- Update Deno config to allow passing `--location` runtime flag.
- Fixed a bug with dependency resolution of exact versions of RC releases.
- Fixed a bug where the documentation of a labelled record constructor could be
assigned to the wrong definition in the doc site.
- Fixed a bug where the code blocks in the generated documentation's site would
have a wrong indentation.
- Fixed a bug where the compiler would panic when it cannot get current
directory.
- Improved error message for non-UTF-8 paths encountered during Gleam commands.
Now includes the path that caused the error for better diagnostics.
- Fixed a bug where on windows local packages had absolute paths in the manifest
instead of relative.
- The `gleam publish` command now asks for confirmation if the package
repository URL doesn't return a successful status code.
- `gleam publish` can now optionally use a Hex API key to authorise publishing
and retiring packages, set via the environment variable `HEXPM_API_KEY`.
- `gleam publish` will now refuse to publish placeholder packages, to prevent
name squatting which is against the Hex terms of service.
- If a package leaks an internal type in its public API, then the build tool
will now refuse to publish it to Hex.
- Monospaced links in the generated documentation now have the same color as
common links.
- Fixed a bug where the `export package interface` command would always
recompile the project ignoring the cache.
### Language Server
- Update messages from the client are now batched to avoid doing excess
compilation work in the language server, improving performance. This makes a
large difference in low power machines where the language server could
struggle to keep up with the edits from the client.
- The `Compiling Gleam` message is no longer emitted each time code is compiled.
This is to reduce noise in editors that show this message prominently such as
Neovim.
- Fixed a bug where hovering over an expression in the middle of a pipe would
give the wrong node.
- Go to definition now works for values in dependency Gleam modules.
- Completions are now provided for module imports.
## v1.0.0 - 2024-03-04
### Language changes
- Comments have been added to the JavaScript prelude to indicate which members
are in the public API and which are internal.
### Build tool
- Fixed a bug where the exported package interface would not have a module's
documentation.
## v1.0.0-rc2 - 2024-02-14
### Bug fixes
- Fixed a bug where the exhaustiveness checker could crash for some generic
types.
### Formatter
- The format used by the formatter has been improved in some niche cases.
- Improved the formatting of long case guards.
## v1.0.0-rc1 - 2024-02-10
### Language changes
- Using a reserved word is now a compile error, not a warning.
- Inexhaustive matches are now compile errors, not warnings.
- The warning for an unused module alias now shows how to not assign a name to
the module.
- Type aliases with unused type parameters now emit an error.
- Type definitions with duplicate type parameters now emit an error.
### Formatter
- Now the formatter will nest pipelines and binary operators that are used as
function arguments, list items or as tuple items.
- The format function literals used as the last argument in a function call
on long lines has been improved.
### Build tool
- If a package contains a `todo` expression then the build tool will now refuse
to publish it to Hex.
- `gleam export` now takes a `package-interface` option to export a json file
containing metadata about the root package.
- `gleam docs build` now creates a json file containing metadata about the root
package.
- The order of dependencies in `manifest.toml` is now in alphabetical order.
- The search bar in generated docs now has a darker background color.
- The generated docs no longer shows whether an argument is discarded or
not in a function signature.
- It is now possible to use `gleam run -m` to run a dependency module even if
that dependency uses a compile target that your project does not support.
### Bug fixes
- Fixed a bug the build tool could be make to attempt to run a main function
that does not support the current target in some circumstances.
- Fixed a bug where the exhaustiveness checker could crash when checking nested
values inserted into the parent type using type parameters.
- Fixed a bug where `functionname(_name)` would incorrectly parse as a function
capture instead of a syntax error.
- Fixed a bug where external only functions would "successfully" compile for a
target they do not support, leading to a runtime error.
## v0.34.1 - 2023-01-17
### Build tool changes
- Support has been added for using SourceHut as a repository.
### Bug fixes
- Fixed a bug where long function headers with external implementations could
format incorrectly.
- The `@deprecated` attribute can now be used to annotate module constants.
This will cause a warning to be emitted when the constant is used.
## v0.34.0 - 2023-01-16
## v0.34.0-rc3 - 2023-01-12
### Language changes
- "echo" is now a reserved word.
- A warning is no longer emitted when a function has a Gleam implementation as
well as external implementations for both targets. This is because having a
default Gleam implementation means the code is future-proof and continues to
be cross platform even if a new target is added.
### Bug fixes
- Fixed a bug where function heads would go over the line limit in the
formatter.
## v0.34.0-rc2 - 2023-01-11
### Bug fixes
- Fixed a bug where `gleam run` would fail when the current directory is not
the root of the project and using the JavaScript target.
- Fixed a bug where the compiler would in some cases fail to error when an
application uses functions that do not support the current compilation
target.
## v0.34.0-rc1 - 2024-01-07
### Language changes
- Warn about function body not being used, because it already has external
implementations for all targets.
- It's now possible to compile a project with external functions in dependency
packages that are not supported by the compilation target so long as they are
not used on the current target.
- The error message for when one imports a constructor instead of an homonymous
type has been improved.
### Language Server Changes
- Added a `View on HexDocs` link on function hover.
### Formatter
- Fixed some quirk with the formatting of binary operators.
- Fixed a bug where the formatter would move a function call's closed
parentheses on a new line instead of splitting the function's arguments.
- Now the formatter will format tuples as if they were functions, trying to
first split just the last element before splitting the whole tuple.
- Improved the formatting of multiline strings in string concatenation.
### Build tool changes
- The `gleam new` command now accepts any existing path, as long as there are
no conflicts with already existing files. Examples: `gleam new .`, `gleam new
..`, `gleam new ~/projects/test`.
- The format for the README created by `gleam new` has been altered.
- The `gleam.toml` created by `gleam new` now has a link to the full reference
for its available options.
- The `gleam` binary is now statically linked on Windows.
- New projects are created requiring between versions of v0.34.0 inclusive and
exclusive v2.0.0.
- The `repository` section now supports additional VCS types in the form of
codeberg, forgejo and gitea allowing a `user`, `repo` and additionally a
`host` url.
- TypeScript declaration for the prelude exports previously missing functions
and classes. Additionally, swaps interfaces for classes and adds missing
attributes to classes.
- `gleam` commands now look in parent directories for a `gleam.toml` file.
### Bug fixes
- Fixed a bug where `gleam add` would not update `manifest.toml` correctly.
- Fixed a bug where `fn() { Nil }()` could generate invalid JavaScript code.
- Fixed a bug where the build tool would make unnecessary calls to the Hex API
when path dependencies are used.
- Fixed a bug where `gleam new` would generate a gitignore with `build` rather
than `/build`.
- Fixed where the types of generic constants could be incorrectly inferred.
- `Utf8Codepoint` has been renamed to `UtfCodepoint` in `prelude.d.mts`.
- Fixed a bug where `gleam deps list` would look in filesystem root instead of
the current directory.
- Fixed a bug with the `isEqual` function in `prelude.js` where RegExps were
being incorrectly structurally compared and being falsely reported as being
equal.
- JavaScript: export from `prelude.d.mts` in `gleam.d.mts` to fix the error:
"Type 'Result' is not generic".
- Not providing a definition after some attributes is now a parse error.
## v0.33.0 - 2023-12-18
## v0.33.0-rc4 - 2023-12-17
- The deprecated bit array options `binary` and `bit_string` have been removed.
- The deprecated ambiguous type import syntax has been removed.
- The deprecated `BitString` type has been removed.
- The deprecated `inspect` functions and `BitString` type has been removed from
the JavaScript prelude.
## v0.33.0-rc3 - 2023-12-17
### Formatter
- The formatter now tries to split long chains of binary operations around the
operator itself, rather than around other elements like lists or function
calls.
### Bug fixes
- Fixed a bug where string prefix aliases defined in alternative case branches
would all be bound to the same constant.
## v0.33.0-rc2 - 2023-12-07
### Language changes
- The `\e` string escape sequence has been removed. Use `\u{001b}` instead.
- Generated Erlang now disabled redundant case clause warnings as these are now
redundant due to exhaustiveness checking.
### Bug fixes
- Fixed a bug where the `\u` string escape sequence would not work with
on Erlang on the right hand side of a string concatenation.
## v0.33.0-rc1 - 2023-12-06
### Formatter
- The formatter now tries to keep a function body and its arguments on a single
line by first trying to split only its last argument on multiple lines.
- Fixed a bug where the formatter would move comments out of blocks.
- `gleam format` now ignores the Gleam build directory by default, even when not
in a git repository.
### Language changes
- Gleam now has full exhaustiveness checking. Exhaustiveness issues have been
downgraded from errors to warnings so that existing Gleam code can be
upgraded to be exhaustive without breaking existing code. In a future version
they will be upgraded to errors.
- The `!` operator can now be used in clause guards.
- The words `auto`, `delegate`, `derive`, `else`, `implement`, `macro`, and
`test` are now reserved for future use. If used they will emit a warning. In
a future version this may be upgraded to an error.
- The `\u{...}` syntax can be used in strings to specify unicode codepoints via a
hexadecimal number with 1 to 6 digits.
- The `todo as` and `panic as` syntaxes now accept an expression that evaluates
to a string rather than just a string literal.
### Build tool changes
- The `gleam run` and `gleam test` commands gain the `-t` flag, which is an
alias of the `--target` flag.
- The `gleam build`, `gleam check`, `gleam run` and `gleam test` commands now
also accept `js` and `erl` as values for the `--target` flag.
- The `gleam new` command now creates packages at version 1.0.0.
- The `gleam publish` command now asks for confirmation if the package being
published is not yet version 1.0.0.
- The `gleam publish` command now asks for confirmation if the package name is
one that implies the package is maintained by the Gleam core team.
- The error messages shown when dependency resolution fails have been improved.
### Compiler WASM API
- The WASM API for the compiler has been rewritten to be simpler.
- The WASM API for the compiler now exposes warnings.
### HTML documentation generator
- Searching in rendered HTML documentation now also matches words that do not
start with the input but do contain it.
### Bug fixes
- Fixed a bug where the JavaScript code generator could generate invalid code
when pretty printing a zero arity function call when the line is over 80
columns wide.
- Fixed a bug where the build directory could be left in an invalid state if
there is Elixir code to compile and running on Windows without permission to
create symlinks.
- Fixed a bug where numbers with preceding zeros could generate incorrect
JavaScript.
- The Erlang code generated by the `/.` operator no longer generates a warning
for the upcoming negative zero float change in Erlang OTP 27.
- Fixed a bug where using only types from an aliased import, wouldn't stop the
compiler from emitting an unused alias warning for that import.
- Fixed a bug where the formatter would remove the ` as name` from string prefix
patterns.
- Fixed a bug where the formatter would misplace comments at the start of a
block.
- Fixed a bug where using a string prefix pattern in `let assert` would generate
incorrect JavaScript.
## v0.32.4 - 2023-11-09
### Build tool changes
- The build tool now supports rebar3 and mix hex packages where the package name
differs from the otp application name.
### bug fixes
- Fixed a bug where invalid javascript code could be generated when a module
function calls another function that was passed as an argument and the
argument has the same name as the module function.
- Fixed the `target` property of `gleam.toml` being ignored for local path
dependencies by `gleam run -m module/name`
## v0.32.3 - 2023-11-07
### Language changes
- Imported modules can now be discarded by giving them an alias starting with `_`.
### Build tool changes
- New projects are now generated with the call to `gleam format` coming last in
the GitHub Actions workflow. This is so that feedback from tests is presented
even if formatting is incorrect.
- Added Windows support for the `gleam export erlang-shipment` command.
### Bug fixes
- Fixed a bug where some nested pipelines could fail to type check.
## v0.32.2 - 2023-11-03
### Build tool changes
- New Gleam projects are created with `gleam_stdlib` v0.32 and `gleeunit` v1.0.
### Bug fixes
- Fixed a bug where `gleam fix` would not produce correct results for code that
shadowed a prelude name with an import of the same name but a different kind.
- Fixed a bug where documentation would not publish to Hexdocs for packages with
a number in the name.
- Fixed a bug where aliased unqualified types and values of the same name could
produce an incorrect error.
## v0.32.1 - 2023-11-02
### Bug fixes
- Fixed a bug where `gleam fix` would not produce correct results for code that
shadowed a prelude name with an import of the same name but a different kind.
- Fixed a bug where incorrect JavaScript could be generated due to backwards
compatibility with the deprecated import syntax.
## v0.32.0 - 2023-11-01
### Bug fixes
- Fixed a bug where running `gleam fix` multiple times could produce incorrect
results.
## v0.32.0-rc3 - 2023-10-26
### Bug fixes
- Fixed a bug where `gleam fix` would fail to update the deprecated type import
syntax for aliased unqualified types.
## v0.32.0-rc2 - 2023-10-26
### Bug fixes
- Fixed a bug where the backward compatibility for the deprecated import syntax
could result in an import error with some valid imports.
## v0.32.0-rc1 - 2023-10-25
### Language changes
- Using `import module.{TypeName}` to import a type has been deprecated,
replaced by `import module.{type TypeName}`. In a future version of Gleam the
old syntax will only import the value of the same name. Run `gleam fix` to
update your code.
- The `BitString` type has been renamed to `BitArray`. Run `gleam fix` to update
your code.
- The `binary` and `bit_string` bit array modifier have been deprecated in favour
of `bytes` and `bits`.
- The error message for when one element in a list doesn't match the others has
been improved.
- The error message for when the elements of a list's tail don't match the
previous ones has been improved.
- The error message for when one tries to access an unknown field has been
improved.
- The `__gleam_prelude_variant__` property has been removed from the classes
defined in the JavaScript prelude.
- The deprecated `todo("...")` syntax has been removed.
- Module access can now be used in case clause guards.
- The JS target now supports bit syntax for module constants.
- The Erlang compiler will no longer emit a duplicate warning for unused
functions.
- The `@deprecated` attribute can now be used with type definitions.
- A warning is now emitted if a module alias is unused.
### Language server changes
- The language server now has a code action for removing unused items.
- The language server now shows the type of variables defined using `use` on
hover.
### Build tool changes
- The `gleam check` command supports the `target` flag.
- The `gleam fix` command updates code to use `BitArray` rather than `BitString`.
- The `gleam fix` command updates code to use the new import type syntax.
- `gleam fix` sets the `gleam` version constraint in `gleam.toml` to `>= 0.32.0`.
- The `gleam` version constraint field in `gleam.toml` now disregards pre and
build components when checking for compatibility.
- The prelude is no longer rendered once per package when compiling to
JavaScript, instead one copy is rendered for the entire project. If you are
using the `gleam compile-package` API you now need to give a path to the
prelude using the `--javascript-prelude` flag.
- The `gleam export javascript-prelude` and `gleam export typescript-prelude`
commands have been added to export a copy of the prelude. This command may be
useful for build tools that use the compiler via the `gleam compile-package`
API.
- Fixed a bug where some deprecation messages would not be printed.
- The content has been made wider in rendered HTML documentation.
- Dependencies that can be built with both `mix` and `rebar3` are now built
with `mix` if it exists on the system, and with `rebar3` if it doesn't.
### Bug fixes
- "Compiling $package" is now only printed when a package has new changes to
compile.
- The main process started with `gleam run` no longer traps exits on Erlang.
- The formatting of code in rendered HTML documentation has been improved.
- The formatter no longer moves trailing comments out of custom type definitions.
- Fixed a bug where some hexadecimal numbers would generate incorrect Erlang.
- Fixed a bug where markdown tables would not render correctly in HTML
documentation.
- The float 0.0 is now rendered in Erlang as `+0.0` to silence warnings in
Erlang/OTP 27.
## v0.31.0 - 2023-09-25
- New Gleam projects are created with `gleam_stdlib` v0.31, `actions/checkout`
v3.\*, and `erlef/setup-beam` v1.\*.
- A note is included in the generated HTML documentation if a function is
deprecated.
## v0.31.0-rc1 - 2023-09-18
- The `@deprecated("...")` attribute can be used to mark a function as
deprecated. This will cause a warning to be emitted when the function is used.
- A warning is now emitted if a module from a transitive dependency is imported.
- Record access can now be used in case clause guards.
- Fixed a bug where `manifest.toml` could contain absolute paths for path
dependencies.
- The `as` keyword can now be used to assign the literal prefix to a variable
when pattern matching on a string.
- The `if` conditional compilation, `external fn`, and `external type` syntaxes
have been removed.
- The `description` flag for the `gleam new` command has been removed.
- The highlight.js grammar included with generated HTML documentation has been
updated for the latest syntax.
- Packages are no longer precompiled to Erlang when publishing to Hex if the
package target is set to JavaScript.
- An exception is now raised if JavaScript code uses the `BitString` class
constructor and passes in the incorrect argument type.
- Fixed a bug where mutually recursive functions could be incorrectly inferred
as having an overly general type.
- Fixed a bug where recursive type constructors could incorrectly infer a type
error.
- Fixed a bug where some mutually recursive functions would be inferred as
having too general a type.
- Fixed a bug where constants where not being correctly inlined when used in the
size option of a bit string pattern match.
- Fixed a bug where anonymous functions could parse successfully when missing a
body.
- Fixed a bug where incorrect unused variable warnings could be emitted for code
that doesn't type check.
- Fixed a bug where packages defaulting to the JavaScript target could have
modules missing from their HTML documentation when published.
- Corrected some outdated links in error messages.
- Hovering over a function definition will now display the function signature,
or the type of the hovered argument.
- Use `import type` for importing types from typescript declarations.
- Use `.d.mts` extension for typescript declarations to match `.mjs`.
- Prefix module names with dollar sign in typescript to avoid name collisions.
## v0.30.4 - 2023-07-26
- External implementations are always referenced directly in generated code, to
avoid the overhead of an extra function call.
- Fixed a bug where the compiler could infer incorrect generic type parameters
when analysing a module without type annotations with self recursive
functions that reference themselves multiple times.
## v0.30.3 - 2023-07-23
- Fixed a bug where JavaScript module path such as `node:fs` would be rejected.
- New Gleam projects are created with `gleam_stdlib` v0.30, Erlang OTP v26.0.2,
Elixir v1.15.4, actions/checkout v3.5.1, and erlef/setup-beam v1.16.0.
## v0.30.2 - 2023-07-20
- Fixed a bug where the compiler could infer incorrect generic type parameters
when analysing a module without type annotations with self recursive
functions.
- Fixed a bug where the formatter would incorrectly format external functions
by breaking the return annotation instead of the function arguments.
## v0.30.1 - 2023-07-13
- Fixed a bug where the language server could fail to import path dependencies
in monorepos.
## v0.30.0 - 2023-07-12
- A warning is now emitted for the deprecated external fn syntax.
## v0.30.0-rc4 - 2023-07-10
- An error is now emitted for invalid JavaScript external implementations.
- Fixed a bug where Erlang external implementations could generate invalid code.
## v0.30.0-rc3 - 2023-07-05
- Fixed a bug where `gleam fix` would fail to parse command line flags.
## v0.30.0-rc2 - 2023-07-03
- Fixed a bug where `gleam fix` would merge external functions of the same name
but incompatible types.
- Fixed a bug where external function arguments would incorrectly be marked as
unused.
## v0.30.0-rc1 - 2023-06-29
- The new `@target(erlang)` and `@target(javascript)` attribute syntax has been
added for conditional compilation. The existing `if` conditional compilation
syntax has been deprecated. Run `gleam fix` to update your code.
- The new `type TypeName` syntax syntax replaces the `external type TypeName`
syntax. The existing external type syntax has been deprecated. Run `gleam format`
to update your code.
- Adding a new dependency now unlocks the target package. This helps avoid
failing to find a suitable version for the package due to already being
locked.
- A custom message can now be specified for `panic` with `panic as "..."`.
- The syntax for specifying a custom message for `todo` is now `todo as "..."`.
- The Erlang error raised by `let assert` is now tagged `let_assert`.
- Types named `Dynamic` are now called `dynamic_` in Erlang to avoid a clash
with the new Erlang `dynamic` type introduced in OTP26.
- Dependencies can now be loaded from paths using the
`packagename = { path = "..." }` syntax in `gleam.toml`.
- The `javascript.deno.unstable` field in `gleam.toml` can now be used to
enable Deno's unstable APIs when targeting JavaScript.
- Blockquotes are now styled in rendered HTML documentation.
- The `gleam` property can be set in `gleam.toml` can be set to a version
requirement to specify the version of Gleam required to build the project.
- Type aliases can now refer to type aliases defined later in the same module.
- Fixed a bug where unapplied record constructors in constant expressions would
generate invalid Erlang.
- Fixed a bug where the prescedence of `<>` and `|>` would clash.
- Fixed a bug where `gleam docs build` would print an incorrect path upon
completion.
- Warnings from dependency packages are no longer surfaced in the language
server.
- A warning is now emitted when a Gleam file is found with an invalid name.
- A warning is now emitted when using `list.length` to check for the empty list,
which is slow compared to checking for equality or pattern matching (#2180).
- The new `gleam remove <package_name>` can be used to remove dependencies
from a Gleam project.
- Fixed a bug where the formatter could crash.
- Fixed a bug where invalid Erlang would be generated when piping into `panic`.
- The `gleam docs build` command gains the `--open` flag to open the docs after
they are generated (#2188).
- Fixed a bug where type annotations for constants could not be written with
type annotations.
- Updated font loading in generated HTML documentation to fix an issue with
fonts not loading properly in some browsers (#2209).
## v0.29.0 - 2023-05-23
- New projects now require `gleam_stdlib` v0.29.
## v0.29.0-rc2 - 2023-05-22
- The `gleam lsp` command is no longer hidden from the help output.
- Fixed a bug where some language server clients would show autocompletion
suggestions too eagerly.
## v0.29.0-rc1 - 2023-05-16
- The language server will now provide autocomplete suggestions for types and
values either imported or defined at the top level of the current module.
- Fixed a bug where record patterns using the spread operator (`..`) to discard
unwanted arguments would not type check correctly when the record had no
labelled fields.
- Add support for using sized binary segments in pattern matches when targeting
JavaScript.
- A warning is now emitted for double unary negation on ints (`--`) and bools
(`!!`) as this does nothing but return the original value.
- Previously the build tool would discard the entire build directory when dependencies
were changed. Now it will only discard the build artefacts for removed
dependencies.
- The errors emitted when a name is reused in a module have been made clearer.
- Fixed an incorrect URL in the error message for failing to parse a let binding
with a type annotation.
- Fixed a bug where shadowing a prelude type name could result in incorrect
errors in exhaustiveness checking.
- Fixed a bug where the language server would in some scenarios not remove an
error diagnostic after it becomes outdated.
- Fixed a bug where the formatter would incorrectly format blocks with a comment
before them that were the only argument to a function call.
- Fixed a bug where the language server would not reset the build directory when
it was created by a different version of Gleam.
- New Gleam projects are created with `erlef/setup-beam@v1.15.4` in their GitHub
actions CI configuration.
- Running a module now uses the dependency's target and runtime in its `gleam.toml`.
## v0.28.3 - 2023-04-17
- Fixed a bug where the language server would show outdated error diagnostics
when a new one was emitted in a different module.
- Fixed a bug where the language server would attempt to analyse Gleam modules
that were outside of the `src` or `test` directories.
- New Gleam projects are created with `actions/checkout@v3.5.1` and
`erlef/setup-beam@1.15.3` in their GitHub actions CI configuration.
## v0.28.2 - 2023-04-10
- Fixed a bug where comments above a `use` expression would be formatted
incorrectly.
- Fixed a bug where the formatter would fail to preserve empty lines after a
block.
- Fixed a bug where the formatter would fail to preserve empty lines after an
anonymous function with a return annotation.
## v0.28.1 - 2023-04-05
- Fixed a bug where the language server would unset too many error diagnostics
when multiple projects are open, more than one have errors, and one of them is
successfully compiled.
- Fixed a bug where the language server would unset error diagnostics when
displaying information on hover.
- Added support for type annotations in use statements.
## v0.28.0 - 2023-04-03
- New projects now require `gleam_stdlib` v0.28.
## v0.28.0-rc3 - 2023-03-31
- Fixed a bug where source links would be incorrect in HTML documentation.
## v0.28.0-rc2 - 2023-03-27
- Fixed a bug where single statement blocks inside binary operators could
generate invalid JavaScript.
- Fixed a bug where the formatter could incorrectly place comments.
- Fixed a bug where the language server would show outdated diagnostics when a
file with an error reverts to the previous valid version, causing the compiler
to use the cached version of the file.
## v0.28.0-rc1 - 2023-03-26
- The language server now analyzes files on edit rather than on save, providing
feedback faster.
- The language server now supports editor sessions that span multiple projects.
This is useful for mono-repos and projects with both a frontend and backend in
Gleam.
- The language server now also shows documentation on hover for expressions.
- The language server now shows types and documentation on hover for patterns.
- Added support for negation of integers with the new `-` unary operator.
- Variable assignments are now only permitted within a function or a block, not
anywhere that an expression is permitted.
- The deprecated `try` expression has been removed.
- The deprecated `assert ... = ...` syntax has been removed.
- Semicolons are no longer whitespace. An error will be emitted if one is
encountered.
- Warnings are now immediately emitted rather than being buffered until the end
of the compilation.
- The `--warnings-as-errors` flag is now supported by `gleam build`.
- Blocks are now preserved by the formatter when they only have a single
expression within them.
- Generated docs now export more meta data to improve the developer experience,
accessibility and search engine discoverability.
- Files are now only recompiled if they have changed since the last compilation,
detected by file hash and modification time. Previously only the modification
time was used.
- Autocompletion of module imports was removed due to a buggy implementation.
- Fixed a bug where the formatter would incorrectly remove `{ ... }` from bit
string segment value expressions.
- Fixed a bug where TypeScript type definitions files could include incorrect
type names.
- Fixed a bug where the compiler used VSCode specific behaviour in the language
server which was incompatible with Helix.
- Fixed a bug where string concatenation patterns on strings with escape
characters would generate javascript code with wrong slice index.
- Fixed a bug where blocks could parse incorrectly.
- Allow modules to be run with the `gleam run --module` command.
## v0.27.0 - 2023-03-01
- Fixed a bug where `panic` could generate incorrect JavaScript code.
- New projects now require `gleam_stdlib` v0.27.
## v0.27.0-rc1 - 2023-02-26
- The new `panic` keyword can be used to crash the program. This may be useful
for situations in which a program has got into an unrecoverable invalid state.
- `try` expressions are now deprecated and will be removed in a future version.
- The new `gleam fix` command can be used to automatically convert `try`
expressions to `use` expressions.
- `let assert ... = ...` is now the syntax for assertion assignments. The
`assert ... = ...` syntax is deprecated and will be removed in a future
version. Run `gleam format` to automatically update your code.
- `gleam export hex-tarball` can be used to create a tarball suitable for
uploading to a Hex compatible package repository.
- The unused private type and constructor detection has been improved.
- The argument `--runtime` now accepts `nodejs` as the name for that runtime.
The previous name `node` is still accepted.
- Patterns can now be used in `use` expressions.
- Fixed a bug where string concatenation patterns could generate javascript
code with wrong slice index due to ut8/ut16 length mismatch.
- The Erlang compiler will no longer emit a duplicate warning for unused
variables.
- Fixed a bug where typescript type definitions for types with unlabelled
arguments where generated with an invalid identifier and unlabelled fields
were generated with a name that didn't match the javascript implementation.
- Fixed a bug in the type inferrer were unannotated functions that were
used before they were defined in a module could in rare cased be inferred
with a more general type than is correct.
- Fixed a bug where the LSP would fail to show type information on hover for
expressions after a use expression.
- Fixed a bug where imported constants could generated incorrect JavaScript
code.
- Fixed a bug where the LSP would perform codegen for dependencies.
- Fixed a bug where the LSP would compile native dependencies needlessly.
- Fixed a bug where integer division with large numbers on JavaScript could
produce incorrect results.
- Fixed a bug where pattern matches on custom types with mixed labelled and
unlabelled arguments could not be compiled when targeting JavaScript.
- Fixed a bug where local variables in case guard constant expressions caused
the compiler to panic.
- The formatter now truncates meaningless zeroes of floats' fractional parts.
- Anonymous functions may now have an empty body. The compiler will emit a
warning for functions without a body, and these functions will crash at
runtime if executed.
- Fixed bug where raised errors on JS would have an extra stack frame recorded
in them.
## v0.26.2 - 2023-02-03
- The formatter now wraps long `|` patterns in case clauses over multiple lines.
- Fixed a bug where unlabelled function arguments could be declared after
labelled ones.
- A broken link was removed from the error messages.
- Fixed a bug where using a qualified imported record constructor function as a
value would produce invalid Erlang code if the name of the record variant was
an Erlang reserved word.
## v0.26.1 - 2023-01-22
- New projects now require `gleeunit` v0.10.
- Rebar3 dependency projects are now compiled in-place. This fixes an issue
where some NIF using projects would fail to boot due to some paths not being
copied to the `build` directory.
- An error is now emitted if a list spread expression is written without a tail
value.
- An error is now emitted when a function is defined with multiple arguments
with the same name.
- The error message emitted when a `let` does not match all possible values has
been improved.
- Fixed a bug where the language server wouldn't analyse test code.
- Fixed a bug where `assert` expressions can generate invalid Erlang.
warning.
- Fixed a bug where arguments would be passed incorrectly to Deno.
- Fixed a bug where defining variables that shadow external functions could
generate invalid JavaScript.
## v0.26.0 - 2023-01-19
[Release blog post](https://gleam.run/news/v0.26-incremental-compilation-and-deno/)
- New projects require `gleam_stdlib` v0.26 and `gleeunit` v0.9.
- Fixed a bug where JavaScript default projects would fail to publish to Hex.
## v0.26.0-rc1 - 2023-01-12
- Added support for Deno runtime for JavaScript target.
- Scientific notation is now available for float literals.
- The compiler now supports incremental compilation at the module level. If a
module or its dependencies have not been changed then it will not be
recompiled.
- The format used by the formatter has been improved.
- 4 digit integers are now always formatted without underscores.
- Running `gleam new` will skip `git init` if the new project directory is
already part of a git work tree.
- Generated HTML documentation now includes all static assets, including web
fonts, so that it can be accessed offline and in future once CDNs would 404.
- Generated HTML documentation now supports TypeScript syntax highlighting.
- New Gleam projects are created using GitHub actions erlef/setup-beam@v1.15.2.
- Some modules can now be hidden from the docs by specifying a list of glob
patterns in `internal_modules` in `gleam.toml`. The default value for this
list is `["$package_name/internal", "$package_name/internal/*"]`.
- The `gleam new` command gains the `--skip-git` flag to skip creation of
`.git/*`, `.gitignore` and `.github/*` files.
- The `gleam new` command gains the `--skip-github` flag to skip creation of
`.github/*` files.
- Fixed a bug where no error would be emitted if a `src` module imported a
`test` module.
- Fixed a bug where comments in list prepending expressions could be formatted
incorrectly.
- Fixed a bug where comments in record update expressions could be formatted
incorrectly.
- Fixed a bug where long `use` expressions could be formatted incorrectly.
- Fixed a bug integer multiplication would overflow large integers when
compiling to JavaScript.
- Fixed `int` and `float` formatting in `const`s and patterns.
- Fixed a bug where piping into a function capture expression with a pipe as one
of the arguments would produce invalid Erlang code.
- Formatter no longer removes new lines in expression blocks within case branches
## v0.25.3 - 2022-12-16
- 4 digit integers are no longer automatically formatted with underscores.
## v0.25.2 - 2022-12-16
- Updated `actions/checkout` from `actions/checkout@v3.0.0` to `@v3.2.0` for
projects created via `gleam new`.
- Fixed a bug where `gleam new` would set a `Rebar3` version to `25.1`
instead of the latest stable `3`.
- Updated following runtime versions set via `gleam new`: `Erlang/OTP`
to `25.2`, and `Elixir` to `1.14.2`.
- The formatter now inserts underscores into larger `Int`s and the larger
integer parts of `Float`s.
- Added support for top level TypeScript file inclusion in builds.
- The build tool will now favour using rebar3 over Mix for packages that support
both. This fixes an issue where some packages could not be compiled without
Elixir installed even though it is not strictly required.
## v0.25.1 - 2022-12-11
- New Gleam projects are now configured to explicitly install rebar3 using
GitHub actions erlef/setup-beam.
- A better error message is now shown when attempting to use a function within a
constant expression.
- Changed float size limit in bit string expressions to 16, 32 or 64, when static.
Also allowed dynamic size.
- New Gleam projects are created using GitHub actions erlef/setup-beam@v1.15.0.
- Fixed a bug where returning an anonymous function from a pipeline and calling
it immediately without assigning it to a variable would produce invalid Erlang
code.
- Fixed a bug where the formatter would remove the braces from negating boolean
expressions.
## v0.25.0 - 2022-11-24
[Release blog post](https://gleam.run/news/v0.25-introducing-use-expressions/)
## v0.25.0-rc2 - 2022-11-23
- Fixed a bug where Gleam dependency packages with a `priv` directory could fail
to build.
- Fixed a regression where Elixir and Erlang Markdown code blocks in generated
documentation would not be highlighted.
## v0.25.0-rc1 - 2022-11-19
- Generated HTML documentation now includes the `theme-color` HTML meta tag.
- The `use` expression has been introduced. This is a new syntactic sugar that
permits callback using code to be written without indentation.
- Nightly builds are now also published as OCI container images hosted on
GitHub.
- Fixed a bug where the build tool would not hook up stdin for Gleam programs it
starts.
- Fixed a bug where using a record constructor as a value could generate a
warning in Erlang.
- Fixed a bug where the build tool would use precompiled code from Hex packages
rather than the latest version, which could result in incorrect external
function usage in some cases.
- Fixed a bug where the warning for `todo` would not print the type of the code
to complete.
- Fixed a bug where `try` expressions inside blocks could generate incorrect
JavaScript.
- Generated HTML documentation now includes all static assets (but the web
fonts), so that it can be accessed offline or in far future once CDNs would 404.
- New Gleam projects are created using GitHub actions erlef/setup-beam@v1.14.0
- The `javascript.typescript_declarations` field in `gleam.toml` now applies to
the entire project rather than just the top level package.
- The formatter now adds a `0` to floats ending with `.` (ie `1.` => `1.0`).
- New projects require `gleam_stdlib` v0.25.
## 0.24.0 - 2022-10-25
[Release blog post](https://gleam.run/news/gleam-v0.24-released/)
## 0.24.0-rc4 - 2022-10-23
- Fixed a bug where the string concatenate operator could produce invalid Erlang
code when working with pipe expressions.
## 0.24.0-rc3 - 2022-10-20
- Fixed a bug where the OOP method call error hint would be shown on too many
errors.
- Fixed a bug where the string concatenate operator could produce invalid Erlang
code when working with constant values.
## 0.24.0-rc2 - 2022-10-18
- Fixed a bug where imported and qualified record constructors used in constant
expressions could fail to resolve.
## 0.24.0-rc1 - 2022-10-15
- Gleam can now compile Elixir files within a project's `src` directory.
- The `<>` operator can now be used for string concatenation and for string
prefix pattern matching.
- Fixed a bug where TypeScript definitions may have incorrect type parameters.
- New projects depend on `gleam_stdlib` v0.24.
- New projects' GitHub Actions config specifies Erlang/OTP 25.1 and suggest
Elixir 1.14.1.
- If you attempt to use the method call syntax (`thing.method()`) on a value
without that field the error message will now include a hint explaining that
Gleam is not object oriented and does not have methods.
- Fixed a bug in the formatter where multiple line documentation comments for
custom type constructor fields could be formatted incorrectly.
- Fixed a bug where tail call optimisation could be incorrectly applied when
compiling to JavaScript in some situations.
- Fixed a bug where the remainder operator would return NaN results when the
right hand side was zero when compiling to JavaScript.
- Fixed a bug where Elixir dependencies would fail to compile on Windows.
- Fixed a bug where images added to HTML documentation via documentation
comments would not have a max width.
## v0.23.0 - 2022-09-15
[Release Blog Post](https://gleam.run/news/gleam-v0.23-released/)
## v0.23.0-rc2 - 2022-09-15
- New Gleam projects are created using GitHub actions erlef/setup-beam@v1.13.0
and actions/checkout@v3.0.0.
- New Gleam projects are created using version v0.23.0 of the stdlib.
- Fixed a bug where LSP hovering would fail to locate the expression.
## v0.23.0-rc1 - 2022-09-01
- Gleam can now build dependency packages that are managed using Mix.
- Compiler performance has been improved by buffering disc writing and by lazily
loading TLS certs. In testing this doubles performance when compiling the
standard library.
- The `gleam publish` command now adds the `priv` directory and any `NOTICE`
file to the tarball.
- The `gleam update` command can now be used to update dependency packages to
their latest versions.
- Module functions with empty bodies are no longer syntax errors.
- The format used by the formatter has been improved.
- OpenSSL swapped out for RustTLS.
- Generated HTML documentation now includes a search bar.
- The LSP will now provide autocompletion for imports.
- A helpful error message is now returned when assignments are missing either a
keyword or a value.
- Qualifiers are now used when multiple types have the same name in an error
message.
- In JavaScript, if an object has defined an `equals` method in its prototype,
Gleam will now use this method when checking for equality.
- Functions can now be defined and referenced in constant expressions.
- An error is now raised if the record update syntax is used with a custom type
that has multiple constructors.
- An error is now raised if a module is imported multiple times.
- Fixed a bug where defining a type named `CustomeType` would product invalid
JavaScript.
- Fixed a bug where defining a variable with the same name as an unqualified
import would produce invalid JavaScript.
- Fixed a bug where piping to `todo` would generate invalid Erlang code.
- Fixed a bug where inspecting a JavaScript object with a null prototype would
crash.
- Fixed a bug where the formatter could crash if source code contained 3 or more
empty lines in a row.
- Fixed a bug where the formatter would remove braces from blocks used as the
subject of a case expression.
- Fixed a bug alternative patterns with a clause containing a pipe with a pipe
after the case expression could render incorrect Erlang.
- Fixed a bug where formatter would strip curly braces around case guards even
when they are required to specify boolean precedence.
- Fixed a bug where `gleam new` would in some situations not validate the
target directory correctly.
- Fixed a bug where pipes inside record update subjects could generate invalid
Erlang.
- Fixed a bug where pipes inside record access could generate invalid Erlang.
## v0.22.1 - 2022-06-27
- The `gleam publish` confirmation prompt now accepts both "Y" and "y".
- Fixed a bug where `todo` would not emit the correct line number to the LSP while.
## v0.22.0 - 2022-06-12
[Release Blog Post](https://gleam.run/news/gleam-v0.22-released/)
- New projects are created with `gleam_stdlib` v0.22.
## v0.22.0-rc1 - 2022-06-12
- Fixed a bug where doc comments would dissociate from their statements when
generating html documentation.
- You are now allowed to use named accessors on types with multiple constructors if the
accessor's name, position and type match (among the constructors) (#1610).
- Added the ability to replace a release up to one hour after it is published
using `gleam publish --replace`.
- `gleam publish`, `gleam docs publish`, `gleam docs remove`, `gleam hex retire`,
and `gleam hex unretire` now have access to environment variables for
username (default key `HEXPM_USER`) and password (default key `HEXPM_PASS`)
- The `gleam publish` command gains the `-y/--yes` flag to disable the "are you
sure" prompt.
- Clear outdated files from the build directory after compilation.
- Fixed a bug where immediately calling the value that a case expression
evaluates to could generate invalid JavaScript.
- Fixed a bug where the default project target is set to JavaScript,
but the project would run on target Erlang instead.
- The compiler is now able to generate TypeScript declaration files on target
JavaScript (#1563). To enable this edit `gleam.toml` like so:
```toml
[javascript]
typescript_declarations = true
```
- Fixed a bug where argument labels were allowed for anonymous functions.
- Fixed a bug where JavaScript code could be invalid if a variable is defined
inside an anonymous function with a parameter with the same name as the
variable.
- Fixed a bug where importing a JavaScript function named "then" could produce
invalid code.
- Fixed a bug where constants that reference locally defined custom types could
render invalid JavaScript.
- The project generator will no longer permit use of the reserved `gleam_`
prefix.
- Generated HTML docs easter egg updated.
- `gleam export erlang-shipment` can be used to create a directory of compiled
Erlang bytecode that can be used as a deployment artefact to get your
application live.
- `gleam format` will now preserve (up to one) empty lines between consecutive
comments, as well as between comments and any following expression
- The deprecated rebar3 integration has been removed.
- Fixed a bug where `gleam format` would output an unwanted newline at the top
of documents that only contain simple `//` comments.
- No longer add `dev_dependencies` to generated `.app` Erlang files unless
we're compiling the root project (#1569).
- Fixed a bug where the formatter could render a syntax error with lists on long
unbreakable lines.
- Fixed a bug where JavaScript variable names could be incorrectly reused.
- Fixed a bug where `gleam format` would remove the braces around a tuple index
access when accessing a field of the returned element.
- Fixed a bug case clause guards could render incorrect JavaScript if a variable
name was rebinded in the clause body.
- The `gleam compile-package` command no longer generates a `.app` file. This
should now be done by the build tool that calls this command as it is
responsible for handling dependencies.
- Fixed a bug where piping a list tail would create invalid Erlang code (#1656).
## v0.21.0 - 2022-04-24
[Release Blog Post](https://gleam.run/news/v0.21-introducing-the-gleam-language-server/)
- New projects are created with `gleam_stdlib` v0.21.
## v0.21.0-rc2 - 2022-04-20
- Added the ability to replace a release up to one hour after it is published
using `gleam publish --replace`.
- The language server will now enter a degraded mode that only performs
formatting if running in a directory that is not a Gleam project with a
`gleam.toml`.
## v0.21.0-rc1 - 2022-04-16
- The Gleam language server is here! This will provide IDE like features for
code editors that support LSP, including but not limited to VSCode, Neovim,
Emacs, Eclipse, Visual Studio, and Atom. This first version includes these
features:
- Project compilation.
- Inline errors and warnings.
- Type information on hover.
- Go-to definition.
- Code formatting.
- Fixed a bug in generated JavaScript code where functions named `then` would
cause errors when dynamically imported.
- Initialize `git` repo when creating a new project.
- Log messages controlled with `GLEAM_LOG` now print to standard error.
- Log message colours can be disabled by setting the `GLEAM_LOG_NOCOLOUR`
environment variable.
- You can now specify multiple packages when using `gleam add`.
- Bools can now be negated with the `!` unary operator.
- If the compiler version changes we now rebuild the project from scratch on
next build command to avoid issues arising from reading metadata in an old
format (#1547).
- Updated the "Unknown label" error message to match other error messages
(#1548).
- Type holes are now permitted in function arguments and return annotations
(#1519).
- Unused module imports now emit a warning (#1553).
- The error message for failing to parse a multiline clauses without curly
braces has been improved with a hint on how to fix the issue (#1555).
- The error messages for when rebar3 or Erlang are missing from the machine has
been improved with a tip on how to install them (#1567).
- Corrected the hint given with certain int and float binary operator type
errors.
- Add support for `int` and `float` bit string type when compiling to JavaScript.
- Add support for specifying size of integers in a bit string. Supports only exact binaries,
i.e. length is a multiple of 8.
- Fixed compilation of rebar3 based dependencies on Windows.
## v0.20.1 - 2022-02-24
- The type checker has been improved to enable use of the record access syntax
(`record.field`) in anonymous functions passed into higher order functions
without additional annotations.
## v0.20.0 - 2022-02-23
[Release Blog Post](https://gleam.run/news/gleam-v0.20-released/)
- New projects are created with `gleam_stdlib` v0.20.
## v0.20.0-rc1 - 2022-02-20
- Type unification errors involving user annotated types now refer to the names
specified by the user instead of internal rigid-type ids.
- The build tool now validates that listed licenses are valid SPDX expressions.
- A WebAssembly version of the compile is now available for use in JavaScript
and other WebAssembly environments.
- New projects include Hex badges and a link to Hexdocs.
- Enhance type mismatch errors in the presence of try.
- Enhance type mismatch error for an inconsistent try.
- Enhance type mismatch error for pipe expressions to show the whole pipeline
and not only its first line.
- Fixed a bug where sometimes type variable could be reused result in incorrect
non-deterministic type errors.
- Built in support for the Mix build tool has been removed. The `mix_gleam`
plugin is to be used instead.
- Introduce a limited form of exhaustiveness checking for pattern matching
of custom types, which only checks that all constructor tags are covered
at the top level of patterns.
- The `ebin` directory is now copied to the build directory for rebar3 managed
dependencies if present before compilation.
- The format used by the formatter has been improved.
- Package names in `gleam.toml` are validated when the config is read.
- The `priv` directory is linked into the build directory for Gleam projects
managed by the build tool.
- Fixed a bug where type errors from pipes could show incorrect information.
- Fixed a bug where types could not be imported if they had the same name as a
value in the prelude.
## v0.19.0 - 2022-01-12
Dedicated to the memory of Muhammad Shaheer, a good and caring man.
[Release Blog Post](https://gleam.run/news/gleam-v0.19-released/)
## v0.19.0-rc4 - 2022-01-10
- New projects are created with `gleam_stdlib` v0.19 and `gleeunit` v0.6.
- Fixed a bug where external functions could be specified with the wrong module
name in generated Erlang when imported from a nested module in another
package.
- Fixed a bug where warnings wouldn't get printed.
## v0.19.0-rc3 - 2022-01-07
- Fixed a bug where precompiled packages would fail to compile due to Erlang
files being compiled twice concurrently.
## v0.19.0-rc2 - 2022-01-06
- Erlang modules are now compiled in a multi-core fashion.
- New projects are created with `erlef/setup-beam` v1.9.0 instead of
`gleam-lang/setup-erlang` and `gleam-lang/setup-gleam`.
- Fixed a bug where tail call optimisation could generate incorrect code when
the function has argument names that are JavaScript keywords.
- Fixed a bug where the build would continue when dependency packages failed to
compile.
- Fixed a bug where `include` directories would not be accessible by the Erlang
compiler during Gleam compilation.
## v0.19.0-rc1 - 2022-01-03
- The build tool now supports the JavaScript target. The target can be specified
in either `gleam.toml` or using the `--target` flag.
- The `gleam check` command has been introduced for rapidly verifying the types
of Gleam code without performing codegen.
- `true` and `false` can no longer be used as pattern matching variables, to
avoid accidental uses of incorrect syntax that is popular in other languages.
An error will hint about using Gleam's `True` and `False` values instead.
- You can now remove build artifacts using the new `gleam clean` command.
- The `compile-package` can now generate `package.app` files and compile source
modules to `.beam` bytecode files.
- The flags that `compile-package` accepts have changed.
- Published Hex packages now include precompiled Erlang files.
- Erlang record headers are now written to the `include` directory within the
package build directory.
- The format used by the formatter has been improved.
- Fixed a bug where tail recursion could sometimes generated incorrect
JavaScript code.
- Performance of code generators has been slightly improved.
- Allow the record in a record expansion to be an expression that returns a
record.
- Fixed a bug where external function module names would not be escaped
correctly if they contained special characters and were assigned to a
variable.
- A helpful error message is shown if Erlang is not installed.
## v0.18.2 - 2021-12-12
- Erlang applications are now automatically started when the VM is started by
`gleam run` and `gleam test`.
## v0.18.1 - 2021-12-12
- Fixed a bug where pipe expressions in record updates and operator expressions
could generate incorrect Erlang code.
- The `priv` directory is now copied to the output directory for rebar3 packages
prior to compilation. This is required for some packages to compile.
- Fixed a bug where deps that fail to compile would be skipped when compilation
would next be attempted, resulting the project being in an invalid state.
## v0.18.0 - 2021-12-06
[Release Blog Post](https://gleam.run/news/gleam-v0.18-released/)
- New projects now include `gleeunit`.
## v0.18.0-rc3 - 2021-12-05
- URL format in gleam.toml is now validated.
- The `gleam deps list` command has been added.
- Fixed a bug where changing requirements in `gleam.toml` would not cause deps
to be re-resolved.
- Fixed a bug where locked deps would cause incompatible package requirements to
be discarded.
- Development dependencies are now included in the applications listed in the
generated OTP `.app` file.
- `gleam.toml` now includes an `erlang.extra_applications` key to specify extra
OTP applications that need to be started.
## v0.18.0-rc2 - 2021-11-26
- Fixed a bug where OTP .app files would be generated with invalid syntax.
- Removed extra whitespace from newly generated projects.
## v0.18.0-rc1 - 2021-11-25
- Gleam can now compile Gleam projects.
- Gleam can now run tests with the `gleam eunit` command.
- Gleam can now run programs with the `gleam run` command.
- Gleam can now run an Erlang shell with the `gleam shell` command.
- Gleam can now resolve package versions for a Gleam project's dependency tree.
- Gleam can now download Hex packages.
- Gleam can now build dependency packages that are managed using Gleam or
rebar3.
- Gleam is now the default build tool for new projects.
- The template names for `gleam new` have been changed.
- Fixed a bug where the error message for a record update with an unknown field
would point to all the fields rather than the unknown one.
- Improved styling for inline code in generated documentation.
- New projects use v0.18 of the stdlib.
## v0.17.0 - 2021-09-20
[Release Blog Post](https://gleam.run/news/gleam-v0.17-released/)
- Functions now get special handling when being printed from JavaScript.
## v0.17.0-rc2 - 2021-09-19
- Errors thrown when no case clause or assignment pattern matches the subject
value now include more debugging information when targeting JavaScript.
- New projects are generated using `gleam_stdlib` v0.17.1.
## v0.17.0-rc1 - 2021-09-11
- Redesigned the Gleam prelude to be a module of core classes when compiling to
JavaScript. This improves the resulting generated code and makes debugging and
interop easier.
- Projects without rebar3 can be generated using the `gleam-lib` template.
- JavaScript modules are imported using a camel case variable name to avoid name
collisions with variables.
- Pipelines now use assignments in the generated code in order to preserve the
order of any side effects.
- Fixed a bug where the compiler would crash rather than raise an error if a
project contained a single module and attempted to import another.
- Special variable naming has been made more consistent in rendered Erlang and
JavaScript.
- Conditional compilation can now be used to have different code within a module
when compiling to a specific target.
- Fixed a bug where `todo` caused values not to be returned in JavaScript.
- Fixed a bug where multiple discarded function arguments generated invalid
JavaScript.
- Fixed a bug where using JavaScript reserved words as function argument names
caused generated invalid JavaScript.
- Fixed a bug where a case expression of just a catch-all pattern generated
invalid JavaScript.
- Fixed a bug where the formatter would incorrectly render extra newlines below
try expressions.
- Fixed a bug where tail recursive functions with arguments with the same name
as JavaScript reserved words generated the wrong JavaScript.
- Fixed a bug where list equality would be incorrectly reported in JavaScript.
- Multiple subjects are now supported for case expressions in JavaScript.
- Fixed a bug where matching using a Bool or Nil literal as the subject for a
case expression would produce invalid code when compiling to JavaScript.
- Unsupported feature error messages now include file path and line numbers for
debugging.
- Bit string literals with no segment options or just the `bit_string`, `utf8`
or `utf8_codepoint` options can be constructed when compiling to JavaScript.
- The format of generated JavaScript has been improved.
- Fixed a bug where rendered JavaScript incorrectly incremented variables when
reassigned in patterns.
- Added `eval` and `arguments` to JavaScript reserved words.
- Support for the deprecated `tuple(x, y, ...)` syntax has been removed in favor
of the more concise (`#(x, y, ...)`). Use `gleam format` with the previous
version of the compiler to auto-migrate.
- New OTP projects are generated using `gleam_otp` v0.1.6.
- Fixed a bug where the equality operators could return the incorrect value for
records when compiling to JavaScript.
- Fixed a bug where `todo` could sometimes render invalid JavaScript when used
as an expression in the generated code.
- An error is now emitted if the list spread syntax is used with no prepended
elements `[..xs]`.
- Fixed a bug where type errors inside piped expressions would be incorrectly be
reported as being an incorrect usage of the pipe operator.
- Gleam modules with no public exports no longer render private members in
Erlang.
- Fixed a bug where discard variables used in assert assignments would generate
invalid Erlang code.
- Fixed a bug where some expressions as case subjects would generate invalid
JavaScript code.
- Fixed a bug where some assignments as the final expression in a function would
not return the correct value in JavaScript.
- Gleam packages imported in JavaScript now have the path prefix
`gleam-packages`. This can be served from your web server or aliased in your
`package.json` for NodeJS projects.
- Fixed a bug where the type checker would fail to generalise some type
variables, causing module metadata writing to fail.
- Fixed a bug where tail call optimisation when compiling to JavaScript could
result in incorrect code.
- Fixed a bug where variable names could be rendered incorrectly in closures.
- An error is now emitted if alternative patterns fail to define all the
variables defined by the first pattern.
- New projects are generated using `gleam_stdlib` v0.17.0.
- New projects are generated using `gleam_otp` v0.2.0.
## v0.16.1 - 2021-06-21
- Values which are being imported more than once in an unqualified fashion now
cause an error to be reported.
- Argument docs for custom type constructors are now rendered in the HTML
documentation.
- Patterns can be used with `try` expressions when compiling to JavaScript.
- Types and record constructors can now be aliased with an uppercase name when
imported. Aliasing them with a lowercase name is no longer permitted.
- Fixed a bug where nested import paths could be rendered incorrectly in
JavaScript.
## v0.16.0 - 2021-06-17
[Release Blog Post](https://gleam.run/news/gleam-v0.16-released/)
## v0.16.0-rc4 - 2021-06-17
- Fixed a bug where if a JavaScript global function was imported as an external
function with the same name the generated code would diverge.
## v0.16.0-rc3 - 2021-06-17
- New projects are generated using `gleam_stdlib` v0.16.0.
## v0.16.0-rc2 - 2021-06-08
- Gleam now supports alternative patterns in case expressions for the JavaScript target.
- The `gleam` prelude module can now be imported when compiling to JavaScript.
- Fixed a bug where the prelude module could not be imported when using the old
build compiler API.
- Fixed a bug where if a JavaScript global function was imported as an external
function with the same name the generated code would diverge.
- Type error messages coming from pipe usage have been improved.
## v0.16.0-rc1 - 2021-06-04
- Gleam can now compile to JavaScript! Specify the `--target javascript` flag to
`gleam compile-package` to use it today.
- A compile time error is now raised when multiple module level constants with
the same name are defined.
- Fixed a bug where declaring a type constructor using reserved erlang keyword
in its fields results in invalid erlang code being generated.
- Fixed a bug where calling a function with discarded labelled arguments
incorrectly results in a compile error.
- Fixed a bug where assert statements return the wrong value.
- The `gleam new` command requires a root folder param, project name is
optional and if not provided the project name will be inferred from
the folder name.
- Generated Erlang record header files now contain Erlang type information.
- New OTP application projects depend on `gleam_otp` v0.1.5.
- The output of the formatter has been improved.
## v0.15.1 - 2021-05-07
- Fixed a bug where blocks that contained try expressions could be formatted
incorrectly.
## v0.15.0 - 2021-05-06
[Release Blog Post](https://gleam.run/news/gleam-v0.15-released/)
## v0.15.0-rc1 - 2021-05-05
- Syntax highlighting of Gleam code in generated HTML documentation has been
improved.
- Fixed a bug where markdown tables in rendered HTML documentation would have
the incorrect background colour on every other row.
- Tuples now have a new, concise syntax variant: `#(x, y, ...)`. Existing code
can be auto-migrated to the new syntax by running `gleam format`.
- Fixed a bug where customt type constructors with Erlang keywords as names
would generate invalid Erlang code.
- Gleam now supports `\e` string escapes.
- Values and types from the prelude can now be used in a qualified fashion by
importing the `gleam` module.
- Empty lists can now be used in constants.
- Compiler performance has been improved when working with lists.
- Compiler performance has been improved when working with sequences of
expressions.
- Assignments using `let` and `assert` are now expressions and no longer require
a following expression in their containing block. They are now themselves
expressions.
- Fixed a bug where tuple indexing could incorrectly claim a tuple is not of
type tuple in some circumstances.
- Glean `new` command now checks if target folder exists, if so it returns
an error.
- A compile time error is now raised if a module is defined with the name `gleam`.
- A compile time error is now raised if a module is defined with the a keyword
in the name.
- New projects are generated using `gleam_stdlib` v0.15.0.
- New projects are generated at v0.1.0.
## v0.14.4 - 2021-03-27
- The Gleam compiler has been updated to compile with the new Rust v1.51.0.
- New project's `gleam.toml` has a comment that shows how to add a
`repository` field.
- New projects no longer include a licence field in `src/$APP.app.src` by
default.
## v0.14.3 - 2021-03-20
- Added an error hint when joining string using the `+` or `+.` operator.
- New projects are created with `setup-erlang` v1.1.2 and Erlang/OTP v23.2.
- Fixed a bug where the compiler would be unable to locate an imported module
if a value from a nested module is used in a qualified fashion.
## v0.14.2 - 2021-03-02
- Project names can now contain numbers.
## v0.14.1 - 2021-02-27
- The error message for binary operators has been given more detail and
hints.
- Fixed a bug where alternative patterns would incorrectly report unused
variables.
- Fixed a bug where private types shadowed shadowed by values would
incorrectly report unused variables.
## v0.14.0 - 2021-02-18
[Release Blog Post](https://gleam.run/news/gleam-v0.14-released/)
## v0.14.0-rc2 - 2021-02-18
- New projects are created with `gleam_stdlib` v0.14.0.
## v0.14.0-rc1 - 2021-02-14
- Gleam now generates Erlang typespecs.
- New projects no longer include a licence file by default.
- New projects can be created using the new `escript` template to generate a
command line tool style program.
- A warning is emitted when a literal value is constructed but not used.
- Automatically generate a link to repository in docs if available.
- Code in HTML documentation is has highlighted syntax.
- Gleam now only supports `\r`, `\n`, `\t`, `\"`, and `\\` string escapes.
- A set of OCI container images are built automatically for each release.
- New compile time checks for invalid bit string literals and patterns have
been added.
- The error messages for syntax errors in names have been improved.
- Fixed a bug where the repo URL would render incorrectly in HTML docs.
- Fixed a bug where piping a block can render invalid Erlang.
- New compile time warnings on unused types, functions and variables.
- The runtime error emitted by the `todo` keyword now carries additional
information.
- The runtime error emitted by the `assert` keyword now carries additional
information.
- Fixed a bug where bit string patterns would not correctly unify with the
subject being pattern matches on.
- Documentation dark mode.
- Fixed a bug where some app.src properties were incorrectly named.
- `--warnings-as-errors` flag added to `gleam build` command.
## v0.13.2 - 2021-01-14
- `ring` dep upgraded to enable compilation on Apple M1 ARM processors.
## v0.13.1 - 2021-01-13
- Fix off-by-one error in message messages.
## v0.13.0 - 2021-01-13
[Release Blog Post](https://gleam.run/news/gleam-v0.13-released/)
- New Gleam projects use stdlib v0.13.0.
## v0.13.0-rc2 - 2021-01-12
- The `version` property in `gleam.toml` is now optional again.
## v0.13.0-rc1 - 2021-01-09
- Variable names now only have 1st letter capitalized when converted to erlang.
- Records defined in other modules can now be used in module constants.
- Documentation can link from functions, types & constants to their source
code definitions on popular project hosting sites.
- Documentation hosted on HexDocs now has a version selector.
- Fixed a bug where the `app` project template rendered invalid code.
- Newly generated projects use stdlib v0.12.0.
- Named subexpressions in patterns now render correct Erlang.
- The anonymous function syntax now successfully parses with whitespace
between `fn` and `(`.
- Fixed a bug where the formatter would incorrectly remove blocks around some
binary operators.
- Constants can now be defined after they are used in functions
- The parser has been rewritten from scratch, dramatically improving error
messages and compilation times.
- `1-1` and `a-1` are now parsed as `1 - 1` and `a - 1`
- Further information has been added to the error messages when a function
returns the wrong type.
- Further information has been added to the error messages when case clauses
return different types.
- Fixed a bug where imported record constructors without labels used as an
anonymous function generates incorrect Erlang.
## v0.12.1 - 2020-11-15
- The compiler can now discriminate between record access and module access
for shadowed names
- The `new` command will no longer permit projects to be made with names that
clash with Erlang standard library modules.
- The formatter now correctly treats lines of only whitespace as empty.
- The styling of tables in rendered HTML documentation has been improved.
- Rendered HTML documentation has regained its max-width styling.
## v0.12.0 - 2020-10-31
[Release Blog Post](https://gleam.run/news/gleam-v0.12-and-gleam-otp-v0.1-released/)
## v0.12.0-rc4 - 2020-10-31
- The rendered module documentation sidebar can now scroll independently to
the page.
- Application projects now have the correct `mod` value in the generated
`.app.src`.
- Records without fields can now be used in module constants.
- New application projects are now created used Gleam's type safe OTP pulled
from Hex.
## v0.12.0-rc3 - 2020-10-24
## v0.12.0-rc2 - 2020-10-24
## v0.12.0-rc1 - 2020-10-24
- The utf8, utf16, and utf32 type specifiers are now only available in bit
string construction, matching must be done with the codepoint versions.
- Functions may now be called before they are defined in a module. This
enabled mutually recursive functions!
- Discarded variable names may now include numbers.
- Fixed a bug where discarded variables might generate incorrect Erlang.
- Added support tuple access in clause guards.
- New projects are created with version 1.0.2 of the setup-gleam GitHub
action.
- New application projects are now created used Gleam's type safe OTP.
- Comments are now correctly handled on platforms that use \r\n line endings,
such as Windows.
## v0.11.2 - 2020-09-01
- Fixed a bug where an imported constructor would emit an unused constructor
warning when only used in pattern matching.
## v0.11.1 - 2020-08-31
- The formatter style has been improved to render function type arguments on
a single line when possible, even if the return type will not fit on a
single line.
- The format for printed types in error messages has been improved.
- Fixed a bug where the formatter would strip a constructor pattern spread
when no fields are given.
- Fixed a bug where assigning the result of a block to a variable would
generate incorrect Erlang.
- The formatter style has been improved for function calls that take a single
block as an argument.
- Reserved words are no longer incorrectly permitted as project names.
## v0.11.0 - 2020-08-28
[Release Blog Post](https://lpil.uk/blog/gleam-v0.11-released/)
## v0.11.0-rc3 - 2020-08-27
- Bit strings now support non-literal strings as segment values.
- Fixed a bug where Erlang variables could be generated with incorrect names
when defining an anonymous function.
## v0.11.0-rc2 - 2020-08-24
- The formatter style has been improved to render some single argument calls
in a more compact style.
## v0.11.0-rc1 - 2020-08-22
- Field access now works before the custom type is defined.
- The error message returned by the compiler when the user tries to use unknown
labelled arguments now handles multiple labels at once, and does not suggest
labels they have already supplied.
- The formatter style has been improved to use a trailing comma on imports
broken over multiple lines.
- The formatter style has been improved to wrap lists and bit strings over as
few lines as possible if the elements are Ints, Floats, or Strings.
- The formatter style has been improved to preserve comments on labelled
call arguments.
- The formatter style has been improved to preserve empty lines in assignments.
- The performance of the formatter has been improved.
- Records can be updated using the spread syntax. A warning is emitted if no
fields are updated when using this syntax.
- Fixed a bug where type parameters can leak between different type
definitions in a module.
- Markdown tables, footnotes, strikethroughs, and tasklists are now supported
in documentation.
- Fixed a bug where generic types may be incorrectly unified.
- Ints and floats can now be written with underscores for clarity.
- The warning for a `todo` now includes the required type of the
not-yet-implemented expression.
- Holes can be used in type annotations to specify part of a type, leaving the
rest for inference.
- The incorrect arity error now prints any missing labelled arguments.
- Fixed a bug where Erlang variables could be generated with incorrect names
when directly calling an anonymous function.
- A warning is emitted when a type is imported or created but not used.
- Fixed a bug where Erlang variables names could clash when rebinding
variables while similarly named variables ending in a number are in scope.
- Fixed a bug in the pretty printer which prevented the formatter from
rendering sub-expressions in a single line when later code would not fit on
the same line.
- The formatter style has been improved to render some single argument calls
in a more compact style.
- Gleam now supports hex, octal, and binary literals.
- Rebar3 hex packages now include `gleam.toml` and `gen`.
- Newly generated projects use stdlib v0.11.0.
## v0.10.1 - 2020-07-15
- Fixed a bug where the compiler failed to return an error when type checking
a tuple with the wrong arity in a pattern.
- The error message for a duplicate module member now shows the location of
both definitions.
- Fix compiler bug where labelled arguments were being reordered incorrectly.
## v0.10.0 - 2020-07-01
[Release Blog Post](https://lpil.uk/blog/gleam-v0.10-released/)
- Newly generated projects use stdlib v0.10.1.
- Fixed a bug where discards inside bit string patterns generated invalid
code.
## v0.10.0-rc2 - 2020-06-30
- Fixed a bug where variables names would be incorrectly generated when using
alternative patterns.
## v0.10.0-rc1 - 2020-06-29
- Single letter module names are now permitted.
- Added support for bit string syntax.
- Support for the deprecated list prepend syntax has been removed.
- Added module level constants that are inlined at compile time.
- Public module level constants generate documentation.
- The formatter style has been improved to wrap and sort imports.
- The formatter now permits comments at the end of module function bodies.
- The formatter now skips files that match patterns defined in ignore files
such as .gitignore and .ignore.
- Error message diagnostic code previews for type errors when using the the
pipe operator have been made more accurate.
- Added support for list literals in clause guards.
- Fixed bug when reassigning a variable inside a case clause with alternative
patterns.
- Todos can now take an optional label.
## v0.9.1 - 2020-06-12
- Fixed a bug where binary operators may lose required `{ }`s when formatted.
## v0.9.0 - 2020-06-01
[Release Blog Post](https://lpil.uk/blog/gleam-v0.9-released/)
- Newly generated projects use stdlib v0.9.0.
- Additional information is printed to the console when generating HTML
documentation from Gleam code.
- Fixed a bug where blocks on either side of a binary operator would be
rendered without `{ }`.
## v0.9.0-rc1 - 2020-05-26
- The formatter style has been improved.
- Numbers are now permitted in module names.
- Emitted Erlang code correctly adds parentheses around binary subexpressions
to preserve precedence.
- Record names and fields are now escaped in `.hrl` files if they conflict
with Erlang reserved words
- Annotations are now supported on `let` and `assert` expressions
- Formatter now accepts comments for the fields of a custom type's constructors
- Added opaque custom types, which have constructors that cannot be accessed
from outside their own modules.
- Additional (arbitrary) markdown documentation pages can now be added and
built with `docs build`.
- Fix code generation when calling functions returned through either record
or tuple access
- Add lookup for Gleam source code in Mix's `deps` directory.
- Newly generated Gleam projects use the GitHub action
`gleam-lang/setup-erlang` v1.1.0.
- Added support for custom type record literals in guards.
- Type variables are now correctly preserved within nested scopes.
## v0.8.1 - 2020-05-19
- The formatter now correctly handles unicode comments.
## v0.8.0 - 2020-05-07
[Release Blog Post](https://lpil.uk/blog/gleam-v0.8-released/)
- The `docs build`, `docs publish`, and `docs remove` commands can be used to
compile HTML documentation locally, publish them to HexDocs, and remove them
from HexDocs respectively.
- Type error reporting has been improved when using the pipe operator.
- Newly generated projects use stdlib v0.8.0.
- The compiler can now emit warnings. Currently there are warnings for using
the old '|' syntax in lists and for todos.
- Will give a clearer error when a function given as an argument to another
function doesn't match the type of the parameter.
- Fixed bug where imported type constructors had the incorrect arity.
- Fixed bug where a doing an unqualified import of a type constructor and
giving it an alias would use the wrong name if it contained any values.
- Fixed a bug trying to access an imported constructor which contained values.
- Fixed a compiler crash that occurred when trying to unify a tuple with something
other than another tuple or a variable.
- Added support for tuple literals in guards.
## v0.8.0-rc1 - 2020-04-28
- Strings are now encoded as utf8 binaries in the generated Erlang.
- HTML documentation can now be generated from Gleam code by running `gleam build --doc`.
- Gleam code can be formatted using the `gleam format` command.
- The pipe operator `|>` will now attempt to insert the left hand side as the
first argument to the right hand side if the right hand side is a call,
removing the need for function capture boilerplate.
- A `record.label` syntax can now be used to access the fields of a custom
type that have a single record variant.
- Anonymous functions can now have return type annotations.
- There is a `todo` keyword for type checking functions that have not yet been
implemented.
- Tuples can be indexed into using the `var.1` syntax.
- `>`, `>=`, `<`, and `<=` operators are now supported in case clause guards
and can be used to check the ordering of integers.
- `>.`, `>=.`, `<.`, and `<=.` operators are now supported in case clause
guards and can be used to check the ordering of floats.
- The list prepend syntax is now `[x, ..y]`. The old `[x | y]` syntax is
deprecated but will continue to work for now. The formatter will rewrite the
old syntax to the new.
- Add new assert syntax for binding variables `assert Ok(x) = result`. In the
future this will allow you to use a pattern that does not match all values.
- Added support for int and float literals in guards.
- Color codes are now only emitted in error output for interactive terminal
sessions.
- Added a new `..` syntax for discarding the remaining fields of a record.
- Using the same variable name multiple times in the same pattern will now
raise an error.
- Discard can now be omitted in list tails in patterns, ie `[x, ..]` is the
same as `[x, .._]`. The former is the preferred version and is emitted by the
formatter.
## v0.7.1 - 2020-03-03
- Projects generated with `gleam new` use `stdlib` version 0.7.0.
## v0.7.0 - 2020-03-01
[Release Blog Post](https://lpil.uk/blog/gleam-v0.7-released/)
## v0.7.0-rc1 - 2020-02-28
- Type aliases can be defined to give concise names to frequently used types.
- Case expression clauses may have guards which can be used to require
equality between specified variables in order for the clause to match.
- Case expression clauses may have alternative patterns, enabling one clause
to match for multiple different possible patterns.
- Types may now be used before they are defined within their defining module.
- Fixed a bug where import paths would not be correctly resolved on Windows.
- Added job to create precompiled binary for 64-bit Windows when releasing.
- `gleam new` now creates a project that uses `actions/checkout@v2.0.0` in its
GitHub actions workflow.
- Labelled argument in functions may now be discarded by prefixing the name
with an underscore, like unlabelled arguments.
- Sub-patterns can have names assigned to them within a pattern using the `as`
keyword.
- The format of compiler error messages printed to the console has been
improved by upgrading to a newer version of the codespan-reporting library.
- Type variables in the given and expected types will now be printed with the
same name in type error messages if they are equivalent.
- A friendly error message is rendered when a case expression clause has the
incorrect number of patterns for the subjects.
- A friendly error message is rendered when a .gleam file cannot be read.
- A friendly error message is rendered when the `gleam new` command fails to
write the new project to the file system.
- A friendly error message is rendered when there is a cycle formed by module
imports.
- Top level types are now printed in error messages for type parameter mismatches.
- The `gen` directory is now deleted before each compilation.
- `gleam new` now includes installation instructions for Hex packages in the
generated README.
- `gleam new` now accepts a `--description` flag for including a description of
the project in the README and `.app.src` file.
- Fixed a bug where variable names would be incorrectly generated in some
situations when variable names are reused during and after a case
expression.
- Performance of the Erlang code generator has been improved by removing some
vector allocations.
- An error is emitted when multiple types with the same name are defined in or
imported into a module.
## v0.6.0 - 2019-12-25 🎄
[Release Blog Post](https://lpil.uk/blog/gleam-v0.6-released/)
- Function capture syntax now supports labelled arguments.
## v0.6.0-rc1 - 2019-12-23
- Syntax for defining structs and enums have been unified into a singular
custom type definition statement. Instances of these custom types are called
records.
- Anonymous structs have been renamed tuples.
- Values and types can be given a new name when imported in the unqualified
fashion using the `import mod.{value as name}` syntax.
- An error will be emitted if multiple values constructors are defined with
the same name in a module.
## v0.5.1 - 2019-12-23
- Fixed a bug where invalid Erlang would be generated when using a local
private function as a value.
## v0.5.0 - 2019-12-16
[Release Blog Post](https://lpil.uk/blog/gleam-v0.5-released/)
- Enum constructor arguments can now be labelled, allowing arguments to be
given by name at the call site.
- An Erlang header file with a record definition is generated for each Gleam
struct defined.
- `gleam new` creates a project at v1.0.0.
- Function calls are now properly escaped when the function name conflicts
with an Erlang keyword.
- References to unqualified imported functions now generate correct Erlang
code.
- Fixed a bug where variable rebinding would generate incorrect code in some
case expressions.
- Fixed a bug where variable rebinding of function arguments would generate
incorrect code.
## v0.5.0-rc1 - 2019-11-26
- Function arguments can be labelled, allowing arguments to be given by name
at the call site.
- `case` expressions now accept multiple subjects, enabling pattern matching
on multiple values simultaneously.
- Values and types can be imported from modules and references in an
unqualified fashion.
- Named structs now have their name as the first element in the generated
Erlang code. This enabled easier use from Erlang by defining records for
them, as well as slightly clearer printf debugging.
- Anonymous structs have been introduced, serving as a quick and generic
alternative to declared structs and as a format for interop with Erlang
tuples.
- `gleam new` now accepts a `--template` flag to generate different styles of
project. An OTP application template has been added alongside the existing
OTP library template.
- `gleam new` now creates configuration for GitHub Actions, making Gleam
projects ready for continuous integration out of the box.
- The syntax for defining enums, case expressions, and blocks has been changed
to a syntax closer to that found in the C family of languages.
- The source code preview for functions that return a type incompatible with
the functions annotations has been improved to be more precise.
- A helpful error message is rendered if an enum field contains a generic type
that has not been declared.
- A bug has been fixed in which type mismatch errors originating from pattern
matching would sometimes display the incorrect expected type.
## v0.4.2 - 2019-10-22
- Fixed a crash when an incorrect number of labelled struct arguments are
given.
- Fixed a struct labelled argument being incorrect reported as already given.
## v0.4.1 - 2019-09-29
- Struct types with parameterised fields are now registered with the correct
number of type parameters.
## v0.4.0 - 2019-09-19
[Release Blog Post](https://lpil.uk/blog/gleam-v0.4-released/)
- The struct data type has be introduced. Structs are pre-declared user
defined data types with named fields and constant access time.
- The map and tuple data types has been removed, replaced by the struct data
type.
- The generated code no longer contains export statements if no functions are
exported from a module.
- Comparison operators have been specialised to operate only on Ints.
- The `>.` `>=.` `<.` and `<=.` comparison operators have been added for
comparing Floats.
- It is now an error to export an enum which has a constructor that takes a
private type as an argument.
- The error messages for defining multiple modules with the same name and for
importing test modules into application code have been improved.
- Numbers are now permitted in type names and constructors.
- The `Nil` constructor will no longer erroneously be of type `Int`.
## v0.3.0 - 2019-08-08
[Release Blog Post](https://lpil.uk/blog/gleam-v0.3-released/)
- New project structure can be generated with the `gleam new` command.
- Functions can be annotated with their argument and return types. This may be
used to restrict the function to a less general type than inferred by the
compiler, or purely for documentation purposes.
- External function names and their target functions are now escaped in the
generated code if they collide with Erlang keywords such as `catch` or `or`.
- Type error arising from the arguments of function calls have more accurate
error diagnostics.
- Precompiled Gleam binaries are now available on the GitHub release page.
- Precompiled Docker images containing the Gleam binary are now available on
DockerHub.
- The formatting of the Erlang code rendered by the compiler has been altered
to improve legibility.
- A helpful error message is now rendered if the shorthand anonymous function
syntax is used with too many underscores.
- A helpful error message is now rendered when attempting to import an unknown
module.
## v0.2.0 - 2019-06-25
- Modules can now live within namespaces such as `my_app/user/profile`.
- The name of the variable created can be specified when importing a module
using the `import my_mod as name` syntax.
- Function names and atoms are now escaped in the generated code if they
collide with Erlang keywords such as `catch` or `or`.
- There is a shorthand syntax for prepending multiple elements to a list.
`[1, 2, 3 | my_list]`
## v0.1.2 - 2019-05-12
- Types containing more than 26 type variables will no longer render with
invalid type variable names.
- Types in error messages no longer have extra indentation that increases as
the type gets larger.
- There is a new type `Nil` which is occupied by a single value (`Nil`). This
type is used to represent the absence of a value and is commonly used with
`Result` to model a value that is either present (`Ok(value)`) or absent
(`Error(Nil)`).
- Zero arity enum constructors now generate the correct Erlang when used in
modules other than the one they are defined in.
## v0.1.1 - 2019-04-28
- Error messages now display the path of the file containing the problem.
- Maps and modules with erroneous extra fields now have a custom error
message.
- Rows with tails that are unbound type variables are now correctly unified in
the type system. This fixes a bug in which maps and modules may sometimes
fail to type check when there is no error.
## v0.1.0 - 2019-04-15
[Release Blog Post](https://lpil.uk/blog/hello-gleam/)
- Initial release!
================================================
FILE: changelog/v1.10.md
================================================
# Changelog
## v1.10.0 - 2025-04-14
### Bug fixes
- Fixed a bug where the code action to unqualify types and values would add an
unqualified import even if it was already imported.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where numbers starting with `0x_`, `0o_` and `0b_` would cause
a syntax error when compiling to JavaScript.
([Surya Rose](https://github.com/GearsDatapacks))
## v1.10.0-rc1 - 2025-04-05
### Compiler
- On the JavaScript target, bit arrays can now use the `unit` option to control
the units of the `size` option.
([Surya Rose](https://github.com/GearsDatapacks))
- The compiler can now tell if string branches are unreachable. For example, the
following code:
```gleam
case a_string {
"Hello, " <> name -> name
"Hello, Jak" -> "Jak"
_ -> "Stranger"
}
```
Will raise the following warning:
```
warning: Unreachable case clause
┌─ /src/greet.gleam:7:5
│
7 │ "Hello, Jak" -> "Jak"
│ ^^^^^^^^^^^^^^^^^^^^^
This case clause cannot be reached as a previous clause matches the same
values.
Hint: It can be safely removed.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- On the JavaScript target, blocks and various other expressions no longer
compile to immediately invoked function expressions.
([Surya Rose](https://github.com/GearsDatapacks))
- On the JavaScript target, bit arrays can now use 16-bit floats in expressions
and patterns.
([Richard Viney](https://github.com/richard-viney))
- Improved the error message for unknown and missing target names in the
`@target` attribute.
([Alexander Keleschovsky](https://github.com/AlecGhost))
- The compiler now uses a call graph for detecting unused types and values.
This means that among other things, it can now detect unused recursive
functions. For example:
```gleam
// warning: unused
fn some_recursive_function() {
some_recursive_function()
}
```
([Surya Rose](https://github.com/GearsDatapacks))
- The compiler now emits a warning when using `let assert` to assert a value
whose variant has already been inferred. For example:
```gleam
// warning: This will always crash
let assert Ok(_) = Error("Some error")
```
([Surya Rose](https://github.com/GearsDatapacks))
- It is now possible to omit the `:float` option for literal floats used in a
`BitArray` segment.
```gleam
<<1.11>>
```
Is the same as:
```gleam
<<1.11:float>>
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Compilation of binary operators is now fault tolerant and won't stop at the
first type error.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler now provides a better error message when using the wrong operator
to try and join two strings together. For example:
```txt
error: Type mismatch
┌─ /src/wibble.gleam:2:13
│
2 │ "Hello, " + "Lucy"
│ ^ Use <> instead
The + operator can only be used on Ints.
To join two strings together you can use the <> operator.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler now provides a better error message when using an Int operator on
Float values, suggesting the correct replacement. For example:
```txt
error: Type mismatch
┌─ /Users/giacomocavalieri/Desktop/prova/src/prova.gleam:2:7
│
2 │ 1.0 + 2.0
│ ^ Use +. instead
The + operator can only be used on Ints.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler now provides a better error message when using a Float operator
on Int values, suggesting the correct replacement. For example:
```txt
error: Type mismatch
┌─ /Users/giacomocavalieri/Desktop/prova/src/prova.gleam:2:5
│
2 │ 1 >. 2
│ ^^ Use > instead
The >. operator can only be used on Floats.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler no longer shows errors for a function's labels if the called
function itself doesn't exist.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Build tool
- Include a type annotation for the `main` function generated by `gleam new`.
([Drew Olson](https://github.com/drewolson))
- Two entry point scripts are now always generated by `gleam export erlang-shipment`:
- `entrypoint.sh` for POSIX Shell
- `entrypoint.ps1` for PowerShell
([Greg Burri](https://github.com/ummon))
- The `gleam export` command now takes a `package-information` option to
export the project's `gleam.toml` as a JSON file.
([Rodrigo Álvarez](https://github.com/Papipo))
- Improved the error message when failing to encrypt or decrypt a local
Hex API key.
([Samuel Cristobal](https://github.com/scristobal))
- The `HEXPM_USER` and `HEXPM_PASS` environment variables when running
`gleam publish` have been deprecated in favour of `HEXPM_API_KEY`.
([Samuel Cristobal](https://github.com/scristobal))
- The "functions" and "constants" sections of generated HTML documentation have
been merged into one "values" section.
([Sam Zanca](https://github.com/metruzanca))
### Language server
- The language server now allows renaming of functions, constants,
custom type variants and custom types across modules. For example:
```gleam
// wibble.gleam
pub fn wibble() {
wibble()
//^ Trigger rename
}
// wobble.gleam
import wibble
pub fn main() {
wibble.wibble()
}
```
Becomes:
```gleam
// wibble.gleam
pub fn wobble() {
wobble()
}
// wobble.gleam
import wibble
pub fn main() {
wibble.wobble()
}
```
([Surya Rose](https://github.com/GearsDatapacks))
- The language server can now offer a code action to replace a `..` in a pattern
with all the fields that are being ignored. For example triggering the code
action on this spread:
```gleam
pub type Pokemon {
Pokemon(id: Int, name: String, moves: List(String))
}
pub fn main() {
let Pokemon(..) = todo
// ^ If you put your cursor here
}
```
Would generate the following code:
```gleam
pub type Pokemon {
Pokemon(id: Int, name: String, moves: List(String))
}
pub fn main() {
let Pokemon(id:, name:, moves:) = todo
}
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The function generated by the "Generate JSON encoder" code action has been
slightly modified so that it will now fail to compile if the type has new
fields added, ensuring the programmer remembers to re-run the code action.
For example, for this type:
```gleam
type Person {
Person(name: String, age: Int)
}
```
The following code used to be generated:
```gleam
fn encode_person(person: Person) -> json.Json {
json.object([
#("name", json.string(person.name)),
#("age", json.int(person.age)),
])
}
```
But now, this code is generated:
```gleam
fn encode_person(person: Person) -> json.Json {
let Person(name:, age:) = person
json.object([
#("name", json.string(name)),
#("age", json.int(age)),
])
}
```
([Surya Rose](https://github.com/GearsDatapacks))
- The language server now supports finding references to values and types,
both within a module and across multiple modules.
([Surya Rose](https://github.com/GearsDatapacks))
- The language server now offers a code action to remove all `echo`s in a
module. For example:
```gleam
pub fn main() {
[1, 2, 3]
|> echo
// ^^^^ If you put your cursor over here
|> list.filter(int.is_even)
|> echo
}
```
Triggering the code action would remove all the `echo` pipeline steps:
```gleam
pub fn main() {
[1, 2, 3]
|> list.filter(int.is_even)
}
```
This also works with all the `echo`s used before an expression:
```gleam
pub fn main() {
echo 1 + 2
//^^^^^^^^^^ If hovering anywhere over here
}
```
Triggering the code action would remove the `echo`:
```gleam
pub fn main() {
1 + 2
}
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The language server now offers a code action to replace a Float operator used
on Int values with the correct operator. For example:
```gleam
pub fn main() {
11 +. 1
//^^^^^^^ When hovering anywhere over here
}
```
Triggering the code action would fix the compilation error by using the
correct Int operator:
```gleam
pub fn main() {
11 + 1
}
```
This also works the other way around:
```gleam
pub fn main() {
1.1 + 10.0
//^^^^^^^^^^ If hovering anywhere over here
}
```
Triggering the code action would replace the wrong operator with the correct
equivalent Float operator:
```gleam
pub fn main() {
1.1 +. 10.0
}
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- If there's a compilation error because two strings are being joined with the
wrong `+` operator (instead of using `<>`), the language server now offers a
code action to fix the error automatically. For example:
```gleam
pub fn main() {
"Hello, " + "Jak"
//^^^^^^^^^^^^^^^^^ When hovering anywhere over here
}
```
Triggering the code action would fix the compilation error by using the
correct `<>` operator instead of `+`:
```gleam
pub fn main() {
"Hello, " <> "Jak"
}
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The language server now offers the option to lift expressions into consts.
For example, in two uses of the code action:
```gleam
pub fn main() {
[#("a", 0), #("b", 1), #("a", 2)]
|> key_filter("a")
}
```
Becomes:
```gleam
const values = [#("a", 0), #("b", 1), #("a", 2)]
const string = "a"
pub fn main() {
values
|> key_filter(string)
}
```
([Matias Carlander](https://github.com/matiascr))
- The language server will now only offer the code action to generate a JSON
encoder if the `gleam_json` package is installed as a dependency.
([Surya Rose](https://github.com/GearsDatapacks))
- The language server will offer to wrap assignment or case clause values in
blocks. Useful when adding more expressions to an existing case clause or
variable assignment.
```gleam
pub fn f(pokemon_type: PokemonType) {
case pokemon_type {
Water -> soak()
// ^^^^^^ selecting the right-hand side of the `->` in a clause
Fire -> burn()
}
}
```
Becomes
```gleam
pub fn f(pokemon_type: PokemonType) {
case pokemon_type {
Water -> {
soak()
}
Fire -> burn()
}
}
```
([Matias Carlander](https://github.com/matiascr))
- The "Generate function" code action now uses labels or variable names to improve
the names of generated arguments. For example:
```gleam
pub fn main() {
let language = English
greet(language, name: "Louis")
}
```
Will generate the following function:
```gleam
pub fn greet(language: String, name name: String) -> a {
todo
}
```
([Surya Rose](https://github.com/GearsDatapacks))
- The "Rewrite from `use`" code action now only triggers if the cursor is on the
first line of the `use` expression to rewrite.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Formatter
### Container images
- Container images now contain Software Bill of Materials (SBoM) and SLSA
Provenance information.
([Jonatan Männchen](https://github.com/maennchen))
### Bug fixes
- Fixed a bug where tuples with atoms in the first position could be
incorrectly formatted by `echo`.
([Louis Pilfold](https://github.com/lpil))
- Fixed a bug where unlabelled arguments would be allowed after labelled
arguments in variant constructor definitions.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where using the "Convert to pipe" code action on a function whose
first argument is itself a pipe would result in invalid code.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Fixed a bug where using the "Convert to pipe" code action on a function or
record capture produces invalid code.
([Matias Carlander](https://github.com/matiascr))
- Fixed a bug where a temporarily moved or removed file does not get recompiled,
even though its dependencies changed in the meanwhile.
([Sakari Bergen](http://github.com/sbergen))
- Fixed a bug where the "Inline variable" code action would not work properly
if used inside a record update.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where variant inference wouldn't work on `let assert` assignments.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Fixed a bug where the build tool could fail to lock the build directory but
not report an error.
([Louis Pilfold](https://github.com/lpil))
- Fixed a bug where the language server would be too eager to recompile modules
when it could use the cache from previous compilations.
([Louis Pilfold](https://github.com/lpil))
- Fixed a bug where `let assert` would not assert that the given value matched
the pattern if it was the only expression inside a block.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the code generated for `echo` on JavaScript could have name
collisions if there are functions called `console` or `process`, or custom type
variants called `Object` or `Deno` defined in the module.
([Louis Pilfold](https://github.com/lpil))
- Fixed a bug where the language server would stop working if the build
directory was deleted e.g. as a result of `gleam clean`.
([Sakari Bergen](https://github.com/sbergen))
- Fixed a bug where the "Rewrite to pipe" code action could generate invalid
code when the piped argument was a binary operation.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Fixed a bug where prelude types and values would be suggested in autocomplete
when part of a module select.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the check for multiple top-level modules when publishing
would incorrectly print a warning.
([Surya Rose](https://github.com/GearsDatapacks))
## v1.9.1 - 2025-03-10
### Formatter
- Improved the formatting of pipelines printed with `echo`.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Bug fixes
- Fixed a bug where `echo` used before a pipeline would generate invalid code
for the Erlang target.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
================================================
FILE: changelog/v1.11.md
================================================
# Changelog
## v1.11.0 - 2025-06-02
### Bug fixes
- Fixed a bug where using a pipe operator on the right-hand side of an `assert`
statement would generate invalid code on the JavaScript target.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the build tool would try to run a module whose main
function is private.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Fixed a bug where the compiler would sometimes warn that an assertion was
unnecessary because it only asserted literal values, when that was not the case.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where using the "generate function" code action on a function
capture would generate an argument named `_capture`, using the internal
variable names of the compiler.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the language server would provide completions inside a
constant string.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a grammatical error in the bit array truncation warning message.
([Louis Pilfold](https://github.com/lpil))
## v1.11.0-rc2 - 2025-05-29
### Compiler
- The format of the `assert` and `let assert` location information has been
improved, and the file path of the source module has been added.
([Louis Pilfold](https://github.com/lpil))
### Language server
- When using the "remove `echo`" code action, the language server will also
remove any literal expression being printed by `echo` statements. For example
```gleam
pub fn main() {
echo "Before"
do_complex_stuff()
echo "After"
do_something_else()
}
```
Will become:
```gleam
pub fn main() {
do_complex_stuff()
do_something_else()
}
```
Making it easier to get rid of debug printing messages once they're no longer
needed.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
### Bug fixes
- Fixed a bug where type constructors with many fields would not be formatted
properly in the generated documentation.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- Fixed a bug where fields name `x0` in records could cause invalid code to be
generated on the JavaScript target.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where exceptions on JavaScript could be sometimes missing the
function name metadata.
([Louis Pilfold](https://github.com/lpil))
- Fixed a bug where the missing patterns shown for an inexhaustive `case`
expression would include constructors of opaque types which were not available
in the current module, leading to invalid code.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the language server would offer completions for local
variables where the variables were not in scope, leading to invalid code being
produced if the completion was followed.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where the compiler would crash when compiling `let assert`
statements which contained a bit array pattern inside a tuple pattern on the
JavaScript target.
([Surya Rose](https://github.com/GearsDatapacks))
- Fixed a bug where a zero-length segment of a bit array would never match
in a case expression on the JavaScript target.
([Sakari Bergen](https://github.com/sbergen))
## v1.11.0-rc1 - 2025-05-15
### Compiler
- The compiler can now tell if some branches with bit array patterns are
unreachable. For example, the following code:
```gleam
case payload {
<<first_byte, _:bits>> -> first_byte
<<1, _:bits>> -> 1
_ -> 0
}
```
Will raise the following warning:
```
warning: Unreachable case clause
┌─ /src/bit_array.gleam:4:5
│
4 │ <<1, _:bits>> -> 1
│ ^^^^^^^^^^^^^^^^^^
This case clause cannot be reached as a previous clause matches the same
values.
Hint: It can be safely removed.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The code generated for pattern matching on the JavaScript target has been
improved to be more efficient and perform as little checks as possible.
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler now raises a warning when it can tell that an int segment
with a literal value is going to be truncated. For example, if you wrote this:
```gleam
<<258>>
```
The compiler will now warn you:
```txt
warning: Truncated bit array segment
┌─ /src/main.gleam:4:5
│
4 │ <<258>>
│ ^^^ You can safely replace this with 2
This segment is 1 byte long, but 258 doesn't fit in that many bytes. It
would be truncated by taking its first byte, resulting in the value 2.
```
([Giacomo Cavalieri](https://github.com/giacomocavalieri))
- The compiler will now include labels in the error message when a `case`
expression is inexhaustive. For example, this code:
```gleam
pub type Person {
Person(name: String, age: Int)
}
pub fn classify(person: Person) {
case person {
Person(name: "John", age: 27) -> todo
Person(name: _, age: 42) -> todo
}
}
```
Will produces this error:
```
error: Inexhaustive patterns
Showing preview only (385K chars total). Download the full file or copy to clipboard to get everything.
gitextract_2kwl3uaf/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── actions/ │ │ ├── build-container/ │ │ │ └── action.yml │ │ └── build-release/ │ │ └── action.yml │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── ci.yaml │ ├── release-containers.yaml │ ├── release-nightly.yaml │ └── release.yaml ├── .gitignore ├── .vscode/ │ └── settings.json ├── .well-known/ │ └── funding-manifest-urls ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.toml ├── Cross.toml ├── LICENCE ├── Makefile ├── README.md ├── RELEASE.md ├── benchmark/ │ └── list/ │ ├── .gitignore │ ├── Makefile │ ├── gleam.toml │ ├── manifest.toml │ ├── src/ │ │ └── list.gleam │ └── test/ │ ├── benchmarks.gleam │ └── list_test.gleam ├── bin/ │ └── add-nightly-suffix-to-versions.sh ├── changelog/ │ ├── v1.1.md │ ├── v1.10.md │ ├── v1.11.md │ ├── v1.12.md │ ├── v1.13.md │ ├── v1.14.md │ ├── v1.15.md │ ├── v1.2.md │ ├── v1.3.md │ ├── v1.4.md │ ├── v1.5.md │ ├── v1.6.md │ ├── v1.7.md │ ├── v1.8.md │ └── v1.9.md ├── compiler-cli/ │ ├── Cargo.toml │ ├── clippy.toml │ ├── src/ │ │ ├── add.rs │ │ ├── beam_compiler.rs │ │ ├── build.rs │ │ ├── build_lock.rs │ │ ├── cli.rs │ │ ├── compile_package.rs │ │ ├── config.rs │ │ ├── dependencies/ │ │ │ ├── dependency_manager.rs │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_cli__dependencies__tests__pretty_print_major_versions_available.snap │ │ │ │ └── gleam_cli__dependencies__tests__pretty_print_version_updates.snap │ │ │ └── tests.rs │ │ ├── dependencies.rs │ │ ├── docs.rs │ │ ├── export.rs │ │ ├── fix.rs │ │ ├── format.rs │ │ ├── fs/ │ │ │ └── tests.rs │ │ ├── fs.rs │ │ ├── hex/ │ │ │ └── auth.rs │ │ ├── hex.rs │ │ ├── http.rs │ │ ├── lib.rs │ │ ├── lsp.rs │ │ ├── new/ │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_cli__new__tests__new_with_default_template@src__my_project.gleam.snap │ │ │ │ ├── gleam_cli__new__tests__new_with_default_template@test__my_project_test.gleam.snap │ │ │ │ ├── gleam_cli__new__tests__new_with_javascript_template@src__my_project.gleam.snap │ │ │ │ └── gleam_cli__new__tests__new_with_javascript_template@test__my_project_test.gleam.snap │ │ │ └── tests.rs │ │ ├── new.rs │ │ ├── owner.rs │ │ ├── panic.rs │ │ ├── publish.rs │ │ ├── remove.rs │ │ ├── run.rs │ │ ├── shell.rs │ │ └── text_layout.rs │ ├── templates/ │ │ ├── erlang-shipment-entrypoint.ps1 │ │ ├── erlang-shipment-entrypoint.sh │ │ └── gleam@@compile.erl │ └── test/ │ └── hello_world/ │ ├── .gitignore │ ├── gleam.toml │ └── manifest.toml ├── compiler-core/ │ ├── Cargo.toml │ ├── clippy.toml │ ├── src/ │ │ ├── analyse/ │ │ │ ├── imports.rs │ │ │ ├── name.rs │ │ │ └── tests.rs │ │ ├── analyse.rs │ │ ├── ast/ │ │ │ ├── constant.rs │ │ │ ├── tests.rs │ │ │ ├── typed.rs │ │ │ ├── untyped.rs │ │ │ └── visit.rs │ │ ├── ast.rs │ │ ├── ast_folder.rs │ │ ├── bit_array.rs │ │ ├── build/ │ │ │ ├── elixir_libraries.rs │ │ │ ├── module_loader/ │ │ │ │ └── tests.rs │ │ │ ├── module_loader.rs │ │ │ ├── native_file_copier/ │ │ │ │ └── tests.rs │ │ │ ├── native_file_copier.rs │ │ │ ├── package_compiler/ │ │ │ │ ├── snapshots/ │ │ │ │ │ ├── gleam_core__build__package_compiler__tests__different_packages_defining_duplicate_module.snap │ │ │ │ │ └── gleam_core__build__package_compiler__tests__same_package_defining_duplicate_module.snap │ │ │ │ └── tests.rs │ │ │ ├── package_compiler.rs │ │ │ ├── package_loader/ │ │ │ │ └── tests.rs │ │ │ ├── package_loader.rs │ │ │ ├── project_compiler.rs │ │ │ ├── telemetry.rs │ │ │ └── tests.rs │ │ ├── build.rs │ │ ├── call_graph/ │ │ │ └── into_dependency_order_tests.rs │ │ ├── call_graph.rs │ │ ├── codegen.rs │ │ ├── config/ │ │ │ └── stale_package_remover.rs │ │ ├── config.rs │ │ ├── dep_tree.rs │ │ ├── dependency.rs │ │ ├── derivation_tree.rs │ │ ├── diagnostic.rs │ │ ├── docs/ │ │ │ ├── printer.rs │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__docs__tests__canonical_link.snap │ │ │ │ ├── gleam_core__docs__tests__constructor_with_long_types_and_many_fields.snap │ │ │ │ ├── gleam_core__docs__tests__constructor_with_long_types_and_many_fields_that_need_splitting.snap │ │ │ │ ├── gleam_core__docs__tests__discarded_arguments_are_not_shown.snap │ │ │ │ ├── gleam_core__docs__tests__docs_of_a_type_constructor_are_not_used_by_the_following_function.snap │ │ │ │ ├── gleam_core__docs__tests__function_uses_reexport_of_internal_type.snap │ │ │ │ ├── gleam_core__docs__tests__function_uses_reexport_of_internal_type_in_other_module.snap │ │ │ │ ├── gleam_core__docs__tests__generated_type_variables.snap │ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_do_not_take_into_account_other_definitions.snap │ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_mixed_with_existing_variables.snap │ │ │ │ ├── gleam_core__docs__tests__generated_type_variables_with_existing_variables_coming_afterwards.snap │ │ │ │ ├── gleam_core__docs__tests__hello_docs.snap │ │ │ │ ├── gleam_core__docs__tests__highlight_constant_definition.snap │ │ │ │ ├── gleam_core__docs__tests__highlight_custom_type.snap │ │ │ │ ├── gleam_core__docs__tests__highlight_function_definition.snap │ │ │ │ ├── gleam_core__docs__tests__highlight_opaque_custom_type.snap │ │ │ │ ├── gleam_core__docs__tests__highlight_type_alias.snap │ │ │ │ ├── gleam_core__docs__tests__ignored_argument_is_called_arg.snap │ │ │ │ ├── gleam_core__docs__tests__internal_definitions_are_not_included.snap │ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_different_module.snap │ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module.snap │ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter.snap │ │ │ │ ├── gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter_colours.snap │ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module.snap │ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module.snap │ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module_with_shared_path.snap │ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_different_package.snap │ │ │ │ ├── gleam_core__docs__tests__link_to_type_in_same_module.snap │ │ │ │ ├── gleam_core__docs__tests__long_function_with_no_arguments_parentheses_are_not_split.snap │ │ │ │ ├── gleam_core__docs__tests__long_function_wrapping.snap │ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_function_comment_is_trimmed.snap │ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_module_comment_is_trimmed.snap │ │ │ │ ├── gleam_core__docs__tests__markdown_code_from_standalone_pages_is_not_trimmed.snap │ │ │ │ ├── gleam_core__docs__tests__no_hex_publish.snap │ │ │ │ ├── gleam_core__docs__tests__no_link_to_type_in_git_dependency.snap │ │ │ │ ├── gleam_core__docs__tests__no_link_to_type_in_path_dependency.snap │ │ │ │ ├── gleam_core__docs__tests__no_links_to_prelude_types.snap │ │ │ │ ├── gleam_core__docs__tests__output_of_search_data_json.snap │ │ │ │ ├── gleam_core__docs__tests__print_qualified_names_from_other_modules.snap │ │ │ │ ├── gleam_core__docs__tests__print_type_variables_in_function_signatures.snap │ │ │ │ ├── gleam_core__docs__tests__public_type_reexport_in_different_internal_module.snap │ │ │ │ ├── gleam_core__docs__tests__search_item_for_constant.snap │ │ │ │ ├── gleam_core__docs__tests__search_item_for_custom_type.snap │ │ │ │ ├── gleam_core__docs__tests__search_item_for_function.snap │ │ │ │ ├── gleam_core__docs__tests__search_item_for_type_alias.snap │ │ │ │ ├── gleam_core__docs__tests__tables.snap │ │ │ │ └── gleam_core__docs__tests__use_reexport_from_other_package.snap │ │ │ ├── source_links.rs │ │ │ └── tests.rs │ │ ├── docs.rs │ │ ├── encryption.rs │ │ ├── erlang/ │ │ │ ├── pattern.rs │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__erlang__tests__allowed_string_escapes.snap │ │ │ │ ├── gleam_core__erlang__tests__binop_parens.snap │ │ │ │ ├── gleam_core__erlang__tests__bit_pattern_shadowing.snap │ │ │ │ ├── gleam_core__erlang__tests__block_assignment.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_imported.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_imported_qualified.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported.snap │ │ │ │ ├── gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported_qualified.snap │ │ │ │ ├── gleam_core__erlang__tests__discard_in_assert.snap │ │ │ │ ├── gleam_core__erlang__tests__dynamic.snap │ │ │ │ ├── gleam_core__erlang__tests__field_access_function_call.snap │ │ │ │ ├── gleam_core__erlang__tests__field_access_function_call1.snap │ │ │ │ ├── gleam_core__erlang__tests__float_division_by_literal_non_zero.snap │ │ │ │ ├── gleam_core__erlang__tests__float_division_by_literal_zero.snap │ │ │ │ ├── gleam_core__erlang__tests__function_argument_shadowing.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_imported.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_imported_qualified.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant_imported.snap │ │ │ │ ├── gleam_core__erlang__tests__function_named_module_info_in_constant_imported_qualified.snap │ │ │ │ ├── gleam_core__erlang__tests__guard_variable_rewriting.snap │ │ │ │ ├── gleam_core__erlang__tests__inline_const_pattern_option.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test0_1.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test0_2.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test0_3.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test10.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test11.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test12.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test13.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test16.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test17.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test18.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test19.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1_1.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1_2.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1_4.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1_5.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test1_6.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test2.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test20.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test21.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test22.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test23.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test3.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test5.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test6.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test8.snap │ │ │ │ ├── gleam_core__erlang__tests__integration_test9.snap │ │ │ │ ├── gleam_core__erlang__tests__keyword_constructors.snap │ │ │ │ ├── gleam_core__erlang__tests__keyword_constructors1.snap │ │ │ │ ├── gleam_core__erlang__tests__negation.snap │ │ │ │ ├── gleam_core__erlang__tests__negation_block.snap │ │ │ │ ├── gleam_core__erlang__tests__operator_pipe_right_hand_side.snap │ │ │ │ ├── gleam_core__erlang__tests__positive_zero.snap │ │ │ │ ├── gleam_core__erlang__tests__recursive_type.snap │ │ │ │ ├── gleam_core__erlang__tests__scientific_notation.snap │ │ │ │ ├── gleam_core__erlang__tests__tail_maybe_expr_block.snap │ │ │ │ ├── gleam_core__erlang__tests__tuple_access_in_guard.snap │ │ │ │ ├── gleam_core__erlang__tests__type_named_else.snap │ │ │ │ ├── gleam_core__erlang__tests__type_named_module_info.snap │ │ │ │ ├── gleam_core__erlang__tests__variable_name_underscores_preserved.snap │ │ │ │ └── gleam_core__erlang__tests__windows_file_escaping_bug.snap │ │ │ ├── tests/ │ │ │ │ ├── assert.rs │ │ │ │ ├── bit_arrays.rs │ │ │ │ ├── case.rs │ │ │ │ ├── conditional_compilation.rs │ │ │ │ ├── consts.rs │ │ │ │ ├── custom_types.rs │ │ │ │ ├── documentation.rs │ │ │ │ ├── echo.rs │ │ │ │ ├── external_fn.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── guards.rs │ │ │ │ ├── inlining.rs │ │ │ │ ├── let_assert.rs │ │ │ │ ├── numbers.rs │ │ │ │ ├── panic.rs │ │ │ │ ├── patterns.rs │ │ │ │ ├── pipes.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── records.rs │ │ │ │ ├── reserved.rs │ │ │ │ ├── snapshots/ │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operation3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operator_with_side_effects.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_binary_operator_with_side_effects2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_function_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_function_call2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_literal.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_nested_function_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_variable.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_with_block_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__assert__assert_with_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array4.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array5.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_declare_and_use_var.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_discard.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_discard1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_float.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_constant_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__bit_array_literal_string_pattern_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__block_in_pattern_size.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__discard_utf8_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__non_byte_aligned_size_calculation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__operator_in_pattern_size3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pattern_match_utf16_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pattern_match_utf32_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__pipe_size_segment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_bit_array_1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_bit_array_2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__unicode_character_encoding_in_bit_array_pattern_segment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__utf16_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__erlang__tests__bit_arrays__utf32_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__aliased_string_prefix_pattern_referenced_in_guard.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__alternative_patter_with_string_alias.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__alternative_pattern_variable_rewriting.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__negative_zero_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__not.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__not_two.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__positive_zero_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__spread_empty_list.snap │ │ │ │ │ ├── gleam_core__erlang__tests__case__spread_empty_list_assigning.snap │ │ │ │ │ ├── gleam_core__erlang__tests__conditional_compilation__excluded_attribute_syntax.snap │ │ │ │ │ ├── gleam_core__erlang__tests__conditional_compilation__included_attribute_syntax.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__const_generalise.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__const_type_variable.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend_from_other_module.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__list_prepend_literal.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_private_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_record_with_nested_private_function_field.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__pub_const_equal_to_record_with_private_function_field.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__record_constructor.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__record_constructor_in_tuple.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_internal.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_list.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_private_in_tuple.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_qualified_pub_const_equal_to_record_with_private_function_field.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_unqualified_pub_const_equal_to_private_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__consts__use_unqualified_pub_const_equal_to_record_with_private_function_field.snap │ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__annotated_external_type.snap │ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__annotated_external_type_used_in_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__phantom.snap │ │ │ │ │ ├── gleam_core__erlang__tests__custom_types__unused_opaque_constructor_is_generated_correctly.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__backslashes_are_escaped_in_module_comment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__backslashes_in_documentation_are_escaped.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__double_quotes_are_escaped_in_module_comment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__function_with_documentation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__function_with_multiline_documentation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__internal_function_has_no_documentation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__multi_line_module_comment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__quotes_in_documentation_are_escaped.snap │ │ │ │ │ ├── gleam_core__erlang__tests__documentation__single_line_module_comment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_in_a_pipeline.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_in_a_pipeline_with_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_block.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_case_expression.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_function_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_function_call_and_a_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_panic.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_simple_expression.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_a_simple_expression_and_a_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__echo_with_complex_expression_as_a_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__multiple_echos_in_a_pipeline.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__multiple_echos_inside_expression.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__pipeline_printed_by_echo_is_wrapped_in_begin_end_block.snap │ │ │ │ │ ├── gleam_core__erlang__tests__echo__record_update_printed_by_echo_is_wrapped_in_begin_end_block.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__attribute_erlang.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__attribute_javascript.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__both_externals_no_valid_impl.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__discarded_arg_in_external_are_passed_correctly.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__elixir.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__erlang_and_javascript.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_parameter_erlang.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_parameter_javascript.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_return_erlang.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__hole_return_javascript.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__inlining_external_functions_from_another_module.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__integration_test1_3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__integration_test7.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__javascript_only.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__javascript_only_indirect.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__multiple_discarded_args_in_external_are_passed_correctly.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__multiple_discarded_args_in_external_are_passed_correctly_2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_body.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_body_or_implementation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_gleam_impl_no_annotations_function_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_target_supported_function_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_type_annotation_for_parameter.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__no_type_annotation_for_return.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private_external_function_calls.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__private_local_function_references.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__public_elixir.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__public_local_function_calls.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__reference_to_imported_elixir_external_fn.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__unqualified_inlining_external_functions_from_another_module.snap │ │ │ │ │ ├── gleam_core__erlang__tests__external_fn__unqualified_reference_to_imported_elixir_external_fn.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__function_as_value.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__function_called.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__labelled_argument_ordering.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_aliased_imported_function_as_value.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_aliased_imported_function_called.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_imported_function_as_value.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_imported_function_called.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_unqualified_imported_function_as_value.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__nested_unqualified_imported_function_called.snap │ │ │ │ │ ├── gleam_core__erlang__tests__functions__unused_private_functions.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards20.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards21.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards22.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards23.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards24.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards25.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards26.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards27.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards28.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards29.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards30.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards31.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards32.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_10.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_4.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_5.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_6.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_7.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_8.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__clause_guards_9.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__constants_in_guards.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__constants_in_guards1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__field_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_list_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_nested_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_string_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__module_tuple_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__nested_record_access.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__guards__only_guards3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__blocks_get_preserved_when_needed.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__blocks_get_preserved_when_needed2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__do_not_inline_parameters_that_have_side_effects.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__do_not_inline_parameters_used_more_than_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_anonymous_function_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_anonymous_function_in_pipe.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_capture_in_pipe.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_which_calls_other_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use_and_anonymous.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_function_with_use_becomes_tail_recursive.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function_anonymous.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_higher_order_function_with_capture.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_shadowed_variable.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_shadowed_variable_nested.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowed_in_case_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowing_case_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inline_variable_shadowing_parameter.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inlining_works_properly_with_record_updates.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__inlining_works_through_blocks.snap │ │ │ │ │ ├── gleam_core__erlang__tests__inlining__parameters_from_nested_functions_are_correctly_inlined.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__assignment_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_discard.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_float.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_int.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_assignment_string.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__bit_array_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__constructor_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__constructor_pattern_with_multiple_variables.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__discard_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__float_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__int_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__just_variable.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__let_assert_at_end_of_block.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__let_assert_should_not_use_redefined_variable.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__list_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__list_pattern_with_multiple_variables.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__more_than_one_var.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__one_var.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__pattern_let.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__reference_earlier_segment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_prefix_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__string_prefix_pattern_with_prefix_binding.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__tuple_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__variable_message.snap │ │ │ │ │ ├── gleam_core__erlang__tests__let_assert__variable_rewrites.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__int_negation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_scientific_notation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__numbers_with_underscores2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__repeated_int_negation.snap │ │ │ │ │ ├── gleam_core__erlang__tests__numbers__zero_b_in_hex.snap │ │ │ │ │ ├── gleam_core__erlang__tests__panic__panic_as.snap │ │ │ │ │ ├── gleam_core__erlang__tests__panic__panic_as_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__panic__piped.snap │ │ │ │ │ ├── gleam_core__erlang__tests__panic__piped_chain.snap │ │ │ │ │ ├── gleam_core__erlang__tests__panic__plain.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__alternative_patterns3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__pattern_as.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_assertion.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_list.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_multiple_subjects.snap │ │ │ │ │ ├── gleam_core__erlang__tests__patterns__string_prefix_as_pattern_with_multiple_subjects_and_guard.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__block_expr_into_pipe.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__call_pipeline_result.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__clever_pipe_rewriting.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__clever_pipe_rewriting1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__multiple_pipes.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_case_subject.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_eq.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_list.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_record_update.snap │ │ │ │ │ ├── gleam_core__erlang__tests__pipes__pipe_in_tuple.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__basic.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__const_record_update_generic_respecialization.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__constant_record_update_with_unlabelled_fields.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__imported_qualified_constructor_as_fn_name_escape.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__long_definition_formatting.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__module_types.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__nested_record_update.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__nested_record_update_with_blocks.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__pipe_update_subject.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__private_unused_records.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_access_block.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants_parameterised_types.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_variants_positions_other_than_first.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessor_multiple_with_first_position_different_types.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_accessors.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_constants.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_spread3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_update_with_unlabelled_fields.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__record_updates4.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__reserve_words.snap │ │ │ │ │ ├── gleam_core__erlang__tests__records__type_vars.snap │ │ │ │ │ ├── gleam_core__erlang__tests__reserved__build_in_erlang_type_escaping.snap │ │ │ │ │ ├── gleam_core__erlang__tests__reserved__escape_erlang_reserved_keywords_in_type_names.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__ascii_as_unicode_escape_sequence.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_many_strings.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_many_strings_in_list.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_const_concat_other_const_concat.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_string_prefix.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__assert_string_prefix_discar.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_3_variables.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_constant.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_constant_fn.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__concat_function_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__discard_concat_rest_pattern.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__not_unicode_escape_sequence.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__not_unicode_escape_sequence2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__pipe_concat.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__rest_variable_rewriting.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_of_number_concat.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_not_unicode_escape_sequence.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_escape_sequences.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_guard.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_assignment_with_multiple_subjects.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_not_unicode_escape_sequence.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_shadowing.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__string_prefix_with_escape_sequences.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_concat3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__strings__unicode_escape_sequence_6_digits.snap │ │ │ │ │ ├── gleam_core__erlang__tests__todo__named.snap │ │ │ │ │ ├── gleam_core__erlang__tests__todo__piped.snap │ │ │ │ │ ├── gleam_core__erlang__tests__todo__plain.snap │ │ │ │ │ ├── gleam_core__erlang__tests__todo__todo_as.snap │ │ │ │ │ ├── gleam_core__erlang__tests__todo__todo_as_function.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_named_args_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_nested_named_args_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_nested_result_type_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__custom_type_tuple_type_params_count_twice.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__nested_result_type_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__result_type_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__result_type_inferred_count_once.snap │ │ │ │ │ ├── gleam_core__erlang__tests__type_params__tuple_type_params_count_twice.snap │ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_1.snap │ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_2.snap │ │ │ │ │ ├── gleam_core__erlang__tests__use___arity_3.snap │ │ │ │ │ ├── gleam_core__erlang__tests__use___no_callback_body.snap │ │ │ │ │ ├── gleam_core__erlang__tests__use___pipeline_that_returns_fn.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__anon_external_fun_name_escaping.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__blocks_are_scopes.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__discarded.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__module_const_vars.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_and_call.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_let.snap │ │ │ │ │ ├── gleam_core__erlang__tests__variables__shadow_param.snap │ │ │ │ │ └── gleam_core__erlang__tests__variables__shadow_pipe.snap │ │ │ │ ├── strings.rs │ │ │ │ ├── todo.rs │ │ │ │ ├── type_params.rs │ │ │ │ ├── use_.rs │ │ │ │ └── variables.rs │ │ │ └── tests.rs │ │ ├── erlang.rs │ │ ├── error/ │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_bun_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_deno_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_elixir_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_erlc_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_git_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_linux_ubuntu.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_node_macos_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_rebar3_linux_other.snap │ │ │ │ ├── gleam_core__error__tests__shell_program_not_found_rebar3_linux_ubuntu.snap │ │ │ │ └── gleam_core__error__tests__shell_program_not_found_rebar3_macos_other.snap │ │ │ └── tests.rs │ │ ├── error.rs │ │ ├── exhaustiveness/ │ │ │ ├── missing_patterns.rs │ │ │ └── printer.rs │ │ ├── exhaustiveness.rs │ │ ├── fix.rs │ │ ├── format/ │ │ │ ├── tests/ │ │ │ │ ├── asignments.rs │ │ │ │ ├── binary_operators.rs │ │ │ │ ├── bit_array.rs │ │ │ │ ├── blocks.rs │ │ │ │ ├── cases.rs │ │ │ │ ├── conditional_compilation.rs │ │ │ │ ├── constant.rs │ │ │ │ ├── custom_type.rs │ │ │ │ ├── echo.rs │ │ │ │ ├── external_fn.rs │ │ │ │ ├── external_types.rs │ │ │ │ ├── function.rs │ │ │ │ ├── guards.rs │ │ │ │ ├── imports.rs │ │ │ │ ├── lists.rs │ │ │ │ ├── pipeline.rs │ │ │ │ ├── record_update.rs │ │ │ │ ├── tuple.rs │ │ │ │ └── use_.rs │ │ │ └── tests.rs │ │ ├── format.rs │ │ ├── graph.rs │ │ ├── hex.rs │ │ ├── inline.rs │ │ ├── io/ │ │ │ └── memory.rs │ │ ├── io.rs │ │ ├── javascript/ │ │ │ ├── decision.rs │ │ │ ├── expression.rs │ │ │ ├── import.rs │ │ │ ├── tests/ │ │ │ │ ├── assert.rs │ │ │ │ ├── assignments.rs │ │ │ │ ├── bit_arrays.rs │ │ │ │ ├── blocks.rs │ │ │ │ ├── bools.rs │ │ │ │ ├── case.rs │ │ │ │ ├── case_clause_guards.rs │ │ │ │ ├── consts.rs │ │ │ │ ├── custom_types.rs │ │ │ │ ├── echo.rs │ │ │ │ ├── externals.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── generics.rs │ │ │ │ ├── inlining.rs │ │ │ │ ├── lists.rs │ │ │ │ ├── modules.rs │ │ │ │ ├── numbers.rs │ │ │ │ ├── panic.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── records.rs │ │ │ │ ├── recursion.rs │ │ │ │ ├── results.rs │ │ │ │ ├── snapshots/ │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operation3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operator_with_side_effects.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_binary_operator_with_side_effects2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_function_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_function_call2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_literal.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_nested_function_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_nil_always_throws.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_block_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_case_rhs.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_logical_and_binary_rhs_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_negated_case_rhs.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__assert_with_pipe_on_right.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assert__prova.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_that_always_fails.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_that_always_succeeds.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__assert_with_multiple_variants.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__case_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__catch_all_assert.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__constant_assignments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__correct_variable_renaming_in_assigned_functions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__escaped_variables_in_constants.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__keyword_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__let_assert_nested_string_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__let_assert_string_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__module_const_var.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__module_const_var1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__nested_binding.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_argument.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__rebound_function_and_arg.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__returning_literal_subject.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__tuple_matching.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__use_discard_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__use_matching_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_renaming.snap │ │ │ │ │ ├── gleam_core__javascript__tests__assignments__variable_used_in_pattern_and_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__alternative_patterns_with_variable_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__as_module_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_discard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_assignment_string.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_dynamic_slice.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_constant_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_literal_string_pattern_is_treated_as_utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_pattern_match_all_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_array_sliced.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_string.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bit_string_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits_pattern_requires_v1_9.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__bits_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__block_in_pattern_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_discard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_bit_array_assignment_string.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_discard_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_dynamic_size_float_pattern_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_dynamic_size_pattern_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_empty_match.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_is_byte_aligned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_binary_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bits_with_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bytes.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_bytes_with_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_bits_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_bytes_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_literal_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_shadowed_variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_dynamic_size_with_other_segments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_16_bit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_float_sized_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_aligned_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_literal_unaligned_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bits.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bits_unaligned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_rest_bytes.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_big_endian_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_little_endian_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_unaligned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_sized_value_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_match_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_pattern_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_constant_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_variable_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__case_with_remaining_bytes_after_variable_size_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__const_utf16.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__const_utf32.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__discard_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__dynamic_size_pattern_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__dynamic_size_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__empty.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__empty_match.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__explicit_sized_constant_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__explicit_sized_dynamic_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__float_sized_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__integer.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_binary_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bits_with_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bytes.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_bytes_with_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_case_utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_case_utf8_with_escape_chars.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_bits_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_bytes_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_literal_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_shadowed_variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_dynamic_size_with_other_segments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_16_bit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_float_sized_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_aligned_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_literal_unaligned_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bits.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bits_unaligned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_rest_bytes.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_big_endian_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_signed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_signed_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_little_endian_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_unaligned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_sized_value_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_unsigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_unsigned_constant_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__match_utf8_with_escape_chars.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__multiple_variable_size_segments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__negative_size_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__negative_size_pattern_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__non_byte_aligned_size_calculation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__one.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_pattern_size3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__operator_in_size_for_bit_array_segment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_on_negative_size_calculation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_size_arithmetic.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_unknown_size_and_literal_string.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf16.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf16_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf32.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_match_utf32_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_minus_infinity_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_minus_infinity_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_nan_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_nan_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_plus_infinity_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_32_float_plus_infinity_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_float_is_unreachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_int_is_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_minus_infinity_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_minus_infinity_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_nan_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_nan_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_plus_infinity_still_reachable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_matching_on_64_float_plus_infinity_still_reachable_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__pattern_with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__segments_shadowing_each_other.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_big_endian_constant_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_big_endian_dynamic_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_bits_expression_requires_v1_9.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_max_size_for_compile_time_evaluation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_negative_overflow.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_constant_value_positive_overflow.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_dynamic_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_little_endian_constant_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__sized_little_endian_dynamic_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_bit_array.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_bit_array_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_multiple_bit_arrays.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__tuple_multiple_bit_arrays_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__two.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unaligned_int_expression_requires_v1_9.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unaligned_int_pattern_requires_v1_9.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unit_with_bits_option.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__unit_with_bits_option_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_codepoint.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf16_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_codepoint.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_codepoint_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf32_little_endian.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8_codepoint.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__utf8_codepoint_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable_sized.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__variable_sized_segment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bit_arrays__with_unit.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__assignment_last_in_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_is_not_an_iife.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_shadowing_variables.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_in_tail_position_with_just_an_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__block_with_parenthesised_expression_returning_from_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_returning_functions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_returning_use.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__blocks_whose_values_are_unused_do_not_generate_assignments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__concat_blocks.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__left_operator_sequence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__let_assert_message_no_lifted.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__let_assert_only_statement_in_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks_with_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_blocks_with_pipe.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_multiexpr_non_ending_blocks.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__nested_simple_blocks.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__pattern_assignment_last_in_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__right_operator_sequence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__sequences.snap │ │ │ │ │ ├── gleam_core__javascript__tests__blocks__shadowed_variable_in_nested_scope.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__assigning.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_panic_left.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_panic_right.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_todo_left.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__binop_todo_right.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__constants.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__constants_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__expressions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__negate_panic.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__negate_todo.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__negation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__negation_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__nil_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__operators.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__shadowed_bools_and_nil.snap │ │ │ │ │ ├── gleam_core__javascript__tests__bools__shadowed_bools_and_nil_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__called_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_branches_guards_are_wrapped_in_parentheses.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_list_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_no_variant_record_4.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_string_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_string_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_alias_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_matched_value_wrapped_in_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_4.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_5.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_labels_matched_by_pattern_6.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_record_with_select_matched_by_pattern_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_building_simple_value_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_local_var_in_tuple.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_on_error.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_list_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_record_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_same_value_as_two_subjects_one_is_picked.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__case_with_multiple_subjects_building_simple_value_matched_by_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__deeply_nested_string_prefix_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__directly_matching_case_subject.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__duplicate_name_for_variables_used_in_guards.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__duplicate_name_for_variables_used_in_guards_shadowing_outer_name.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__following_todo.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__guard_variable_only_brought_into_scope_when_needed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__guard_variable_only_brought_into_scope_when_needed_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__interfering_string_pattern_succeeds_if_succeeding.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__list_with_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__list_with_guard_no_binding.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_catch_all.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_no_catch_all.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_or.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__multi_subject_subject_assignments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_match.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__nested_string_prefix_match_that_would_crash_on_js.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__pattern_matching_on_aliased_result_constructor.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__pipe.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__pointless.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__preassign_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__record_update_in_pipeline_in_case_clause.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__result.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__single_clause_variables.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__single_clause_variables_assigned.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__slicing_is_handled_properly_with_multiple_branches.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__string_concatenation_in_clause_guards.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__tuple_and_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case__var_true.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__alternative_patterns_list.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__bit_array_referencing_shadowed_variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__bitarray_with_var.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__constructor_function_in_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__custom_type_constructor_imported_and_aliased.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__eq_complex.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__eq_scalar.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__field_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__float_division.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__guard_pattern_does_not_shadow_outer_scope.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__imported_aliased_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__imported_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__int_division.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__int_remainder.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__keyword_var.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access_aliased.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_access_submodule.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_list_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_nested_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_string_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__module_tuple_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__nested_record_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_eq_complex.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_eq_scalar.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__not_two.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__operator_wrapping_left.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__operator_wrapping_right.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__rebound_var.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__referencing_pattern_var.snap │ │ │ │ │ ├── gleam_core__javascript__tests__case_clause_guards__tuple_index.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_constructor_gets_pure_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_list_with_constructors_gets_pure_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__constant_tuple_with_constructors_gets_pure_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__constants_get_their_own_jsdoc_comment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__constructor_function_in_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__custom_type_constructor_imported_and_aliased.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__imported_aliased_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__imported_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend_from_other_module.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__list_prepend_literal.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_bool_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_float_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_int_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_list_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_nil_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_string_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__consts__literal_tuple_does_not_get_constant_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_ignoring_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_multiple_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_no_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_imported_using_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_ignoring_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_multiple_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_no_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_unqualified_imported_using_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_with_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_with_fields_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_zero_arity_imported.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__const_zero_arity_imported_unqualified.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__constructor_as_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__constructors_get_their_own_jsdoc.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__custom_type_with_named_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__destructure_custom_type_with_mixed_fields_first_unlabelled.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__destructure_custom_type_with_named_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__equality_with_non_singleton_variant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__external_annotated_type_used_in_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__external_annotation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__generic_type_parameter_used_in_field.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__guard_equality_with_non_singleton_variant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_ignoring_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_multiple_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_no_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__imported_using_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__keyword_label_name.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__long_name_variant_mixed_labels_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__long_name_variant_without_labels.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__mixed_singleton_and_non_singleton.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__multiple_singleton_constructors.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__nested_pattern_with_labels.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__new_type_import_syntax.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__non_singleton_record_equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__opaque_types_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__qualified.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_access_in_guard_with_reserved_field_name.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_access_in_pattern_with_reserved_field_name.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_with_field_named_constructor.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__record_with_field_named_then.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_in_case_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_inequality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__singleton_record_reverse_order.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__types_must_be_rendered_before_functions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unapplied_record_constructors_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unnamed_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unnamed_fields_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_constructor_as_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_ignoring_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_multiple_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_no_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_no_label_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unqualified_imported_using_label.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__unused_opaque_constructor_is_generated_correctly.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_aliased_clause_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_aliased_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_qualified_clause_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_qualified_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_unqualified_clause_guard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__variant_defined_in_another_module_unqualified_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_typscript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_aliased.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_aliased_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_imported_unqualified_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__custom_types__zero_arity_literal.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_evaluates_printed_value_before_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_in_a_pipeline.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_in_a_pipeline_with_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_block_as_a_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_case_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_function_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_function_call_and_a_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_panic.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_simple_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_a_simple_expression_and_a_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__echo_with_complex_expression_as_a_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__module_named_inspect.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__multiple_echos_in_a_pipeline.snap │ │ │ │ │ ├── gleam_core__javascript__tests__echo__multiple_echos_inside_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__at_namespace_module.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__attribute_erlang.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__attribute_javascript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__both_externals_no_valid_impl.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__discarded_names_in_external_are_passed_correctly.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__duplicate_import.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__erlang_and_javascript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__erlang_only.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__external_fn_escaping.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__external_type_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__inline_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__module_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__name_to_escape.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__no_body.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__no_module.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__pipe_variable_shadow.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_attribute_erlang.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_attribute_javascript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__private_erlang_and_javascript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__pub_module_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__pub_module_fn_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__same_module_multiple_imports.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__same_name_external.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__tf_type_name_usage.snap │ │ │ │ │ ├── gleam_core__javascript__tests__externals__type_.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__assert_last.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__bad_comma.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__calling_fn_literal.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__calling_functions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__case_in_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__exported_functions.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__fn_return_fn_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_formatting_typescript1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__function_literals_get_properly_wrapped_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__immediately_invoked_function_expressions_include_statement_level.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__internal_function_gets_ignored_jsdoc.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__keyword_in_recursive_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__labelled_argument_ordering.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__let_last.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__module_const_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__module_const_fn1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__multiple_discard.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__no_recur_in_anon_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_into_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_last.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_shadow_import.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_variable_rebinding.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__pipe_with_block_in_the_middle.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__public_function_gets_jsdoc.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__recursion_with_discards.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_argument.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_imported.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_imported_alias.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__reserved_word_in_function_arguments.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__shadowing_current.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__star_slash_in_jsdoc.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__tail_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__tail_call_doesnt_clobber_tail_position_tracking.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__two_pipes_in_a_row.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__variable_rewriting_in_anon_fn_with_matching_parameter.snap │ │ │ │ │ ├── gleam_core__javascript__tests__functions__variable_rewriting_in_anon_fn_with_matching_parameter_in_case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__generics__fn_generics_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__generics__record_generics_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__generics__result_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__generics__task_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__generics__tuple_generics_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__blocks_get_preserved_when_needed.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__blocks_get_preserved_when_needed2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__do_not_inline_parameters_that_have_side_effects.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__do_not_inline_parameters_used_more_than_once.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_anonymous_function_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_anonymous_function_in_pipe.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_capture_in_pipe.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_which_calls_other_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use_and_anonymous.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_function_with_use_becomes_tail_recursive.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function_anonymous.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_higher_order_function_with_capture.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_shadowed_variable.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_shadowed_variable_nested.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowed_in_case_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowing_case_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inline_variable_shadowing_parameter.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inlining_works_properly_with_record_updates.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__inlining_works_through_blocks.snap │ │ │ │ │ ├── gleam_core__javascript__tests__inlining__parameters_from_nested_functions_are_correctly_inlined.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_constants.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_constants_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_destructuring.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__list_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__long_list_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__multi_line_list_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__lists__tight_empty_list.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_aliased_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__alias_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__aliased_unqualified_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__constant_module_access_with_keyword.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__different_package_import.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__discarded_duplicate_import.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__discarded_duplicate_import_with_unqualified.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__import_with_keyword.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__multiple_unqualified_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_module_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_nested_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__nested_same_package.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__renamed_module.snap │ │ │ │ │ ├── gleam_core__javascript__tests__modules__unqualified_fn_call.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_division_by_non_zero_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_division_by_non_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__complex_remainder_by_non_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_non_zero_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_non_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_zero_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_by_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__division_inf_by_inf_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_divide_complex_expr.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_equality1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_operators.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__float_scientific_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__inf_float_case_statement.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_divide_complex_expr.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_equality1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_mod_complex_expr.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_negation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_operators.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__int_patterns.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_float_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__many_preceeding_zeros_int_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__operator_precedence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_float_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int_const.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__preceeding_zeros_int_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder_by_non_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__remainder_by_zero_int.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__repeated_int_negation.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_binary_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_decimal_point.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_decimal_point_case_statement.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_hexadecimal_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_octal_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_binary_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_hex_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__underscore_after_zero_after_octal_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__wide_float_div.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_binary_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_hex_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__numbers__zero_after_underscore_after_octal_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__as_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__bare.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__bare_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__case_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__panic_as.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__pipe.snap │ │ │ │ │ ├── gleam_core__javascript__tests__panic__sequence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_error.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_nil.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_nil_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_ok_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value_constant.snap │ │ │ │ │ ├── gleam_core__javascript__tests__prelude__qualified_prelude_value_does_not_conflict_with_local_value_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__const_record_update_generic_respecialization.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__constant_record_update_with_unlabelled_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_constructor_is_escaped.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_prototype_is_escaped.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_then_is_escaped.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__field_named_x0.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants_parameterised_types.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_variants_positions_other_than_first.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessor_multiple_with_first_position_different_types.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_accessors.snap │ │ │ │ │ ├── gleam_core__javascript__tests__records__record_update_with_unlabelled_fields.snap │ │ │ │ │ ├── gleam_core__javascript__tests__recursion__not_tco_due_to_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__recursion__shadowing_so_not_recursive.snap │ │ │ │ │ ├── gleam_core__javascript__tests__recursion__tco.snap │ │ │ │ │ ├── gleam_core__javascript__tests__recursion__tco_case_block.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_error.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_error_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__aliased_ok_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__error.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__error_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__ok_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_error.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_error_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_ok.snap │ │ │ │ │ ├── gleam_core__javascript__tests__results__qualified_ok_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__ascii_as_unicode_escape_sequence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__const_concat.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__const_concat_multiple.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__discard_concat_rest_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__equality.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_concat.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_literals.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_patterns.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment_with_multiple_subjects.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_assignment_with_utf_escape_sequence.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_shadowing.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__string_prefix_utf16.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__strings__unicode_escape_sequence_6_digits.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__as_expression.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__case_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__inside_fn.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__with_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__with_message_expr.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__without_message.snap │ │ │ │ │ ├── gleam_core__javascript__tests__todo__without_message_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__case.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__constant_tuples.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__constant_tuples1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__nested_pattern.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_access.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_formatting_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_typescript.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_with_block_element.snap │ │ │ │ │ ├── gleam_core__javascript__tests__tuples__tuple_with_block_element1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__import_indirect_type_alias.snap │ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__private_type_in_opaque_type.snap │ │ │ │ │ ├── gleam_core__javascript__tests__type_alias__type_alias.snap │ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_1.snap │ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_2.snap │ │ │ │ │ ├── gleam_core__javascript__tests__use___arity_3.snap │ │ │ │ │ ├── gleam_core__javascript__tests__use___no_callback_body.snap │ │ │ │ │ └── gleam_core__javascript__tests__use___patterns.snap │ │ │ │ ├── strings.rs │ │ │ │ ├── todo.rs │ │ │ │ ├── tuples.rs │ │ │ │ ├── type_alias.rs │ │ │ │ └── use_.rs │ │ │ ├── tests.rs │ │ │ └── typescript.rs │ │ ├── javascript.rs │ │ ├── lib.rs │ │ ├── line_numbers.rs │ │ ├── manifest.rs │ │ ├── metadata/ │ │ │ └── tests.rs │ │ ├── metadata.rs │ │ ├── package_interface/ │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__package_interface__tests__constructors_with_documentation.snap │ │ │ │ ├── gleam_core__package_interface__tests__generic_function.snap │ │ │ │ ├── gleam_core__package_interface__tests__imported_aliased_type_keeps_original_name.snap │ │ │ │ ├── gleam_core__package_interface__tests__imported_type.snap │ │ │ │ ├── gleam_core__package_interface__tests__internal_definitions_are_not_included.snap │ │ │ │ ├── gleam_core__package_interface__tests__internal_modules_are_not_exported.snap │ │ │ │ ├── gleam_core__package_interface__tests__labelled_function_parameters.snap │ │ │ │ ├── gleam_core__package_interface__tests__multiple_type_variables.snap │ │ │ │ ├── gleam_core__package_interface__tests__opaque_constructors_are_not_exposed.snap │ │ │ │ ├── gleam_core__package_interface__tests__package_documentation_is_included.snap │ │ │ │ ├── gleam_core__package_interface__tests__prelude_types.snap │ │ │ │ ├── gleam_core__package_interface__tests__private_definitions_are_not_included.snap │ │ │ │ ├── gleam_core__package_interface__tests__type_aliases.snap │ │ │ │ ├── gleam_core__package_interface__tests__type_constructors.snap │ │ │ │ └── gleam_core__package_interface__tests__type_definition.snap │ │ │ └── tests.rs │ │ ├── package_interface.rs │ │ ├── parse/ │ │ │ ├── error.rs │ │ │ ├── extra.rs │ │ │ ├── lexer.rs │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__parse__tests__append_to_const_list.snap │ │ │ │ ├── gleam_core__parse__tests__argument_scope.snap │ │ │ │ ├── gleam_core__parse__tests__arithmetic_in_guards.snap │ │ │ │ ├── gleam_core__parse__tests__assert_statement.snap │ │ │ │ ├── gleam_core__parse__tests__assert_statement_followed_by_statement.snap │ │ │ │ ├── gleam_core__parse__tests__assert_statement_with_message.snap │ │ │ │ ├── gleam_core__parse__tests__assert_statement_without_expression.snap │ │ │ │ ├── gleam_core__parse__tests__assign_left_hand_side_of_concat_pattern.snap │ │ │ │ ├── gleam_core__parse__tests__assignment_pattern_invalid_bit_segment.snap │ │ │ │ ├── gleam_core__parse__tests__assignment_pattern_invalid_tuple.snap │ │ │ │ ├── gleam_core__parse__tests__attributes_with_improper_definition.snap │ │ │ │ ├── gleam_core__parse__tests__attributes_with_no_definition.snap │ │ │ │ ├── gleam_core__parse__tests__bare_expression.snap │ │ │ │ ├── gleam_core__parse__tests__bit_array_invalid_segment.snap │ │ │ │ ├── gleam_core__parse__tests__block_of_one.snap │ │ │ │ ├── gleam_core__parse__tests__block_of_two.snap │ │ │ │ ├── gleam_core__parse__tests__byte_order_mark.snap │ │ │ │ ├── gleam_core__parse__tests__byte_order_mark_module.snap │ │ │ │ ├── gleam_core__parse__tests__capture_with_name.snap │ │ │ │ ├── gleam_core__parse__tests__case_alternative_clause_no_subject.snap │ │ │ │ ├── gleam_core__parse__tests__case_clause_no_subject.snap │ │ │ │ ├── gleam_core__parse__tests__case_expression_without_body.snap │ │ │ │ ├── gleam_core__parse__tests__case_guard_with_empty_block.snap │ │ │ │ ├── gleam_core__parse__tests__case_guard_with_nested_blocks.snap │ │ │ │ ├── gleam_core__parse__tests__case_invalid_case_pattern.snap │ │ │ │ ├── gleam_core__parse__tests__case_invalid_expression.snap │ │ │ │ ├── gleam_core__parse__tests__case_list_pattern_after_spread.snap │ │ │ │ ├── gleam_core__parse__tests__const_invalid_bit_array_segment.snap │ │ │ │ ├── gleam_core__parse__tests__const_invalid_list.snap │ │ │ │ ├── gleam_core__parse__tests__const_invalid_record_constructor.snap │ │ │ │ ├── gleam_core__parse__tests__const_invalid_tuple.snap │ │ │ │ ├── gleam_core__parse__tests__const_record_update_all_fields.snap │ │ │ │ ├── gleam_core__parse__tests__const_record_update_basic.snap │ │ │ │ ├── gleam_core__parse__tests__const_record_update_only.snap │ │ │ │ ├── gleam_core__parse__tests__const_record_update_with_module.snap │ │ │ │ ├── gleam_core__parse__tests__const_string_concat.snap │ │ │ │ ├── gleam_core__parse__tests__const_string_concat_naked_right.snap │ │ │ │ ├── gleam_core__parse__tests__const_with_function_call.snap │ │ │ │ ├── gleam_core__parse__tests__const_with_function_call_with_args.snap │ │ │ │ ├── gleam_core__parse__tests__constant_inside_function.snap │ │ │ │ ├── gleam_core__parse__tests__correct_precedence_in_pattern_size.snap │ │ │ │ ├── gleam_core__parse__tests__deeply_nested_tuples.snap │ │ │ │ ├── gleam_core__parse__tests__deeply_nested_tuples_no_block.snap │ │ │ │ ├── gleam_core__parse__tests__deprecation_attribute_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__deprecation_without_message.snap │ │ │ │ ├── gleam_core__parse__tests__discard_left_hand_side_of_concat_pattern.snap │ │ │ │ ├── gleam_core__parse__tests__doesnt_issue_special_error_for_pythonic_import_if_slash.snap │ │ │ │ ├── gleam_core__parse__tests__dot_access_function_call_in_case_clause_guard.snap │ │ │ │ ├── gleam_core__parse__tests__echo_at_start_of_pipeline_wraps_the_whole_thing.snap │ │ │ │ ├── gleam_core__parse__tests__echo_cannot_have_an_expression_in_a_pipeline.snap │ │ │ │ ├── gleam_core__parse__tests__echo_followed_by_expression_ends_where_expression_ends.snap │ │ │ │ ├── gleam_core__parse__tests__echo_has_lower_precedence_than_binop.snap │ │ │ │ ├── gleam_core__parse__tests__echo_has_lower_precedence_than_pipeline.snap │ │ │ │ ├── gleam_core__parse__tests__echo_in_a_pipeline.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_message_1.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_message_2.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_1.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_2.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_assert_and_messages_3.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_block.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_complex_expression.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_let_assert_and_message.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_let_assert_and_messages.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_no_expressions_after_it.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_no_expressions_after_it_but_a_message.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_panic.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_panic_and_message.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_panic_and_messages.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_simple_expression_1.snap │ │ │ │ ├── gleam_core__parse__tests__echo_with_simple_expression_2.snap │ │ │ │ ├── gleam_core__parse__tests__error_message_on_variable_starting_with_underscore.snap │ │ │ │ ├── gleam_core__parse__tests__error_message_on_variable_starting_with_underscore2.snap │ │ │ │ ├── gleam_core__parse__tests__external_attribute_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__external_attribute_with_custom_type.snap │ │ │ │ ├── gleam_core__parse__tests__external_attribute_with_non_fn_definition.snap │ │ │ │ ├── gleam_core__parse__tests__float_empty_exponent.snap │ │ │ │ ├── gleam_core__parse__tests__function_call_in_case_clause_guard.snap │ │ │ │ ├── gleam_core__parse__tests__function_definition_angle_generics_error.snap │ │ │ │ ├── gleam_core__parse__tests__function_inside_a_type.snap │ │ │ │ ├── gleam_core__parse__tests__function_invalid_signature.snap │ │ │ │ ├── gleam_core__parse__tests__function_type_invalid_param_type.snap │ │ │ │ ├── gleam_core__parse__tests__if_like_expression.snap │ │ │ │ ├── gleam_core__parse__tests__import_type.snap │ │ │ │ ├── gleam_core__parse__tests__incomplete_function.snap │ │ │ │ ├── gleam_core__parse__tests__inner_single_quote_parses.snap │ │ │ │ ├── gleam_core__parse__tests__internal_attribute_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_2.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_3.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_4.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_label_shorthand_5.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_left_paren_in_case_clause_guard.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_2.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_3.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_4.snap │ │ │ │ ├── gleam_core__parse__tests__invalid_pattern_label_shorthand_5.snap │ │ │ │ ├── gleam_core__parse__tests__list_spread_as_first_item_followed_by_other_items.snap │ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_extra_item_and_another_spread.snap │ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_extra_items.snap │ │ │ │ ├── gleam_core__parse__tests__list_spread_followed_by_other_spread.snap │ │ │ │ ├── gleam_core__parse__tests__list_spread_with_no_tail_in_the_middle_of_a_list.snap │ │ │ │ ├── gleam_core__parse__tests__missing_constructor_arguments.snap │ │ │ │ ├── gleam_core__parse__tests__missing_target.snap │ │ │ │ ├── gleam_core__parse__tests__missing_target_and_bracket.snap │ │ │ │ ├── gleam_core__parse__tests__missing_type_constructor_arguments_in_type_definition.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_deprecation_attribute_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_deprecation_attributes.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_external_for_same_project_erlang.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_external_for_same_project_javascript.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_internal_attributes.snap │ │ │ │ ├── gleam_core__parse__tests__multiple_unsupported_attributes_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__nested_block.snap │ │ │ │ ├── gleam_core__parse__tests__nested_tuple_access_after_function.snap │ │ │ │ ├── gleam_core__parse__tests__nested_tuples.snap │ │ │ │ ├── gleam_core__parse__tests__nested_tuples_no_block.snap │ │ │ │ ├── gleam_core__parse__tests__no_eq_after_binding_snapshot_1.snap │ │ │ │ ├── gleam_core__parse__tests__no_eq_after_binding_snapshot_2.snap │ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_1.snap │ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_2.snap │ │ │ │ ├── gleam_core__parse__tests__no_let_binding_snapshot_3.snap │ │ │ │ ├── gleam_core__parse__tests__non_module_level_function_with_a_name.snap │ │ │ │ ├── gleam_core__parse__tests__non_module_level_function_with_not_a_name.snap │ │ │ │ ├── gleam_core__parse__tests__operator_in_pattern_size.snap │ │ │ │ ├── gleam_core__parse__tests__panic_with_echo.snap │ │ │ │ ├── gleam_core__parse__tests__panic_with_echo_and_message.snap │ │ │ │ ├── gleam_core__parse__tests__prepend_no_elements_to_const_list.snap │ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_with_multiple_spreads.snap │ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_with_no_tail.snap │ │ │ │ ├── gleam_core__parse__tests__prepend_to_const_list_without_comma.snap │ │ │ │ ├── gleam_core__parse__tests__private_internal_const.snap │ │ │ │ ├── gleam_core__parse__tests__private_internal_function.snap │ │ │ │ ├── gleam_core__parse__tests__private_internal_type.snap │ │ │ │ ├── gleam_core__parse__tests__private_internal_type_alias.snap │ │ │ │ ├── gleam_core__parse__tests__private_opaque_type_is_parsed.snap │ │ │ │ ├── gleam_core__parse__tests__pub_function_inside_a_type.snap │ │ │ │ ├── gleam_core__parse__tests__record_access_no_label.snap │ │ │ │ ├── gleam_core__parse__tests__repeated_echos.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_auto.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_delegate.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_derive.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_echo.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_else.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_implement.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_macro.snap │ │ │ │ ├── gleam_core__parse__tests__reserved_test.snap │ │ │ │ ├── gleam_core__parse__tests__semicolons.snap │ │ │ │ ├── gleam_core__parse__tests__special_error_for_pythonic_import.snap │ │ │ │ ├── gleam_core__parse__tests__special_error_for_pythonic_neste_import.snap │ │ │ │ ├── gleam_core__parse__tests__string_concatenation_in_case_clause_guard.snap │ │ │ │ ├── gleam_core__parse__tests__string_single_char_suggestion.snap │ │ │ │ ├── gleam_core__parse__tests__target_attribute_on_type_variant.snap │ │ │ │ ├── gleam_core__parse__tests__tuple_invalid_expr.snap │ │ │ │ ├── gleam_core__parse__tests__tuple_without_hash.snap │ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_error.snap │ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_error_fallback.snap │ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_definition_with_upname_error.snap │ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_usage_with_module_error.snap │ │ │ │ ├── gleam_core__parse__tests__type_angle_generics_usage_without_module_error.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_constructor.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_constructor_arg.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_record.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor_invalid_field_type.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_record_constructor_without_field_type.snap │ │ │ │ ├── gleam_core__parse__tests__type_invalid_type_name.snap │ │ │ │ ├── gleam_core__parse__tests__unknown_attribute.snap │ │ │ │ ├── gleam_core__parse__tests__unknown_external_target.snap │ │ │ │ ├── gleam_core__parse__tests__unknown_target.snap │ │ │ │ ├── gleam_core__parse__tests__use_invalid_assignments.snap │ │ │ │ ├── gleam_core__parse__tests__valueless_list_spread_expression.snap │ │ │ │ ├── gleam_core__parse__tests__with_let_binding3.snap │ │ │ │ ├── gleam_core__parse__tests__with_let_binding3_and_annotation.snap │ │ │ │ ├── gleam_core__parse__tests__wrong_function_return_type_declaration_using_colon_instead_of_right_arrow.snap │ │ │ │ ├── gleam_core__parse__tests__wrong_record_access_pattern.snap │ │ │ │ └── gleam_core__parse__tests__wrong_type_of_comments_with_hash.snap │ │ │ ├── tests.rs │ │ │ └── token.rs │ │ ├── parse.rs │ │ ├── paths.rs │ │ ├── pretty/ │ │ │ └── tests.rs │ │ ├── pretty.rs │ │ ├── reference.rs │ │ ├── requirement.rs │ │ ├── snapshots/ │ │ │ ├── gleam_core__config__barebones_package_config_to_json.snap │ │ │ ├── gleam_core__config__deny_extra_deps_properties.snap │ │ │ ├── gleam_core__config__name_with_dash.snap │ │ │ ├── gleam_core__config__name_with_number_start.snap │ │ │ ├── gleam_core__config__package_config_to_json.snap │ │ │ ├── gleam_core__dependency__tests__resolution_error_message.snap │ │ │ ├── gleam_core__docs__barebones_package_config_to_json.snap │ │ │ ├── gleam_core__docs__package_config_to_json.snap │ │ │ └── gleam_core__requirement__tests__read_wrong_version.snap │ │ ├── strings.rs │ │ ├── type_/ │ │ │ ├── environment.rs │ │ │ ├── error.rs │ │ │ ├── expression.rs │ │ │ ├── fields.rs │ │ │ ├── hydrator.rs │ │ │ ├── pattern.rs │ │ │ ├── pipe.rs │ │ │ ├── prelude.rs │ │ │ ├── pretty.rs │ │ │ ├── printer.rs │ │ │ ├── snapshots/ │ │ │ │ ├── gleam_core__type___tests__const_record_update_all_fields.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_field_type_mismatch_error.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_fieldless_warning.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_non_record.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_nonexistent_field.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_type_mismatch_error.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_unlabelled_fields.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_variant_mismatch_error.snap │ │ │ │ ├── gleam_core__type___tests__const_record_update_variant_without_args.snap │ │ │ │ ├── gleam_core__type___tests__correct_type_check_for_multiple_mutually_recursive_functions.snap │ │ │ │ ├── gleam_core__type___tests__function_parameter_errors_do_not_stop_inference.snap │ │ │ │ ├── gleam_core__type___tests__generic_unlabelled_field_in_updated_const_record_wrong_type.snap │ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity1.snap │ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity2.snap │ │ │ │ ├── gleam_core__type___tests__pipe_with_annonymous_unannotated_functions_wrong_arity3.snap │ │ │ │ ├── gleam_core__type___tests__prepend_constant_list_wrong_element_type.snap │ │ │ │ ├── gleam_core__type___tests__prepend_constant_list_wrong_type.snap │ │ │ │ ├── gleam_core__type___tests__private_types_not_available_in_other_modules.snap │ │ │ │ ├── gleam_core__type___tests__record_update_variant_inference_fails_for_several_possible_variants.snap │ │ │ │ ├── gleam_core__type___tests__record_update_variant_inference_fails_for_several_possible_variants_on_subject_variable.snap │ │ │ │ ├── gleam_core__type___tests__string_concat_ko_1.snap │ │ │ │ ├── gleam_core__type___tests__string_concat_ko_2.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_allow_different_variants_to_be_treated_as_safe.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_allow_lowercase_bools_in_match_clause.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_does_not_cause_false_positives_for_variant_matching.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_functions.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_nested_type.snap │ │ │ │ ├── gleam_core__type___tests__type_unification_removes_inferred_variant_in_tuples.snap │ │ │ │ ├── gleam_core__type___tests__unlabelled_argument_not_allowed_after_labelled_argument.snap │ │ │ │ ├── gleam_core__type___tests__variant_inference_does_not_escape_clause_scope.snap │ │ │ │ └── gleam_core__type___tests__variant_inference_on_literal_record.snap │ │ │ ├── tests/ │ │ │ │ ├── accessors.rs │ │ │ │ ├── assert.rs │ │ │ │ ├── assignments.rs │ │ │ │ ├── conditional_compilation.rs │ │ │ │ ├── custom_types.rs │ │ │ │ ├── dead_code_detection.rs │ │ │ │ ├── echo.rs │ │ │ │ ├── errors.rs │ │ │ │ ├── exhaustiveness.rs │ │ │ │ ├── externals.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── guards.rs │ │ │ │ ├── imports.rs │ │ │ │ ├── let_assert.rs │ │ │ │ ├── pipes.rs │ │ │ │ ├── pretty.rs │ │ │ │ ├── snapshots/ │ │ │ │ │ ├── gleam_core__type___tests__assert__bool_literal.snap │ │ │ │ │ ├── gleam_core__type___tests__assert__comparison_on_literals.snap │ │ │ │ │ ├── gleam_core__type___tests__assert__equality_check_on_literals.snap │ │ │ │ │ ├── gleam_core__type___tests__assert__mismatched_types.snap │ │ │ │ │ ├── gleam_core__type___tests__assert__negation_of_bool_literal.snap │ │ │ │ │ ├── gleam_core__type___tests__assert__wrong_message_type.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__conflict_with_import.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__depreacted_type_deprecate_varient_err.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_all_varients_type.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_type.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__deprecated_varients_type.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__duplicate_variable_error_does_not_stop_analysis.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__pattern_match_correct_labeled_field.snap │ │ │ │ │ ├── gleam_core__type___tests__custom_types__pattern_match_correct_pos_field.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constant_only_referenced_by_unused_constant.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constant_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__constructor_used_if_type_alias_shadows_it.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_alias_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_alias_only_referenced_by_unused_function_with_unqualified.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_marked_unused_when_shadowed_in_record_access.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_module_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_and_constructor_with_same_name.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_and_constructor_with_same_name2.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_type_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__imported_value_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__local_variable_marked_unused_when_shadowed_in_module_access.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__private_type_alias_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__private_type_alias_underlying_type_referenced_by_public_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__shadowed_imported_value_marked_unused.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__type_and_variant_unused.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__type_variant_only_referenced_by_unused_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_mutually_recursive_functions.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_recursive_function.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__unused_type_alias.snap │ │ │ │ │ ├── gleam_core__type___tests__dead_code_detection__used_shadowed_imported_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__access_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__accessor_multiple_variants_multiple_positions.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__accessor_multiple_variants_multiple_positions2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__add_f_int_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__add_int_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__add_on_strings.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_import_error_no_unqualified.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_import_error_with_unqualified.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__ambiguous_type_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__assigned_function_annotation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_binary.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_bits_option_in_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_float_size.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_invalid_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_endianness1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_endianness2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_options_bit_array.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_options_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_signedness1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_conflicting_signedness2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_nosize3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_size.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_size2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_aliased_variable_string.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf16.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf32.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_size_utf8.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf16.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf16_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf32.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf32_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf8.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_codepoint_utf8_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf16.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf32.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_unit_utf8_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_type_does_not_allow_variable_string.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_unit_no_size.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_segment_unit_unit.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_size_not_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_size_not_int_variable.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_using_pattern_variables.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_using_pattern_variables_from_other_bit_array.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_utf8_and_size.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_array_utf8_and_unit.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__bit_arrays4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case10.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case11.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case12.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case13.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case14.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case15.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case16.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case17.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case18.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case19.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case20.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case6.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case7.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case8.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case9.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_clause_mismatch.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_clause_pipe_diagnostic.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_could_not_unify.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_int_tuple_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_list_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_operator_unify_situation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_subject_pattern_unify.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_subject_pattern_unify_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_tuple_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__case_tuple_guard_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_annotation_wrong_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_heterogenus_list.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_annotation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_inferred_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_are_local_with_unbound_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_annotation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_annotation_and_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_unannotated_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_invalid_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_multiple_errors_mismatched_types.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_string_concat_invalid_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__const_usage_wrong.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__constructor_that_does_not_exist_does_not_produce_error_for_labelled_args.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__correct_pipe_arity_error_location.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__custom_type_module_constants.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__do_not_suggest_ignored_variable_outside_of_current_scope.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__double_assignment_in_bit_array.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_alias_names.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_anon_function_arguments.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_and_function_names_const_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_const.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_extfn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_const_names.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_constructors3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_custom_type_names.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_const.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_extfn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_extfn_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fields_in_record_update_reports_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_const.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_extfn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_fn_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_function_names_5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_label_shorthands_in_record_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_module_function_arguments.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_var_in_record_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__duplicate_vars_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_invalid_message.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_10.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_6.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_7.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_8.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_9.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_and_invalid_message.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__echo_followed_by_no_expression_and_message.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__error_for_missing_type_parameters.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__expression_constructor_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__external_annotation_on_custom_type_with_constructors.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__extra_var_inalternative3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_list.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_list_tail.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_negate_bool.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_negate_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fault_tolerant_tuple.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__field_not_in_all_variants.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__field_not_in_any_variant.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__field_type_different_between_variants.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__float_gtf_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__float_operator_on_ints_in_case_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__fn0_eq_fn1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__function_arg_and_return_annotation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__function_return_annotation.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__function_return_annotation_mismatch_with_pipe.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__function_that_does_not_exist_does_not_produce_error_for_labelled_args.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__functions_called_outside_module.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__generic_unlabelled_field_in_updated_record_wrong_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__guard_float_int_eq_vars.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__guard_if_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__guard_int_float_eq_vars.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__guard_record_wrong_arity.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__hint_for_method_call.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__incomplete_pattern_does_not_show_structure_of_internal_type_outside_of_its_module.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__incomplete_pattern_does_not_show_structure_of_internal_type_outside_of_its_module_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__incorrect_arity_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__incorrect_arity_error_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__inexhaustive_use_reports_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__inferred_variant_record_update_change_type_parameter_different_branches.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_eq_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_float_list.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_gt_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__int_operator_on_floats_in_case_guard.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_bit_array_pattern_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_bit_array_pattern_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_case_variable_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_case_variable_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_const_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_arg_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_pattern_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_constructor_pattern_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_custom_type_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_function_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_function_type_parameter_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_list_pattern_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_list_pattern_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_discard_name3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_label.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_label2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_parameter_name3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_pattern_assignment_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_pattern_label_shorthand.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_alias.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_string_prefix_pattern_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_tuple_pattern_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_tuple_pattern_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_alias_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_alias_parameter_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_type_parameter_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_use_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_use_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_variable_discard_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__invalid_variable_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__leak_multiple_private_types.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__let_assert_binding_cannot_be_used_in_panic_message.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__list.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__mismatched_list_tail.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__missing_case_body.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__missing_type_constructor_arguments_in_type_annotation_1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__missing_type_constructor_arguments_in_type_annotation_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__missing_variable_in_alternative_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_arity_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify10.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify11.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify12.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify6.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify7.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify8.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_could_not_unify9.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_non_local_gaurd_var.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__module_private_type_leak_6.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__native_endianness_javascript_target.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negate_boolean_as_integer.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negate_float_as_integer.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negate_string.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float_in_const.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negative_out_of_range_erlang_float_in_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__negative_size_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_definition.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_definition2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_duplicate_record_fields.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_crash_on_record_update_when_constructor_definition_is_invalid.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_hint_for_non_method_call.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__no_note_about_reliable_access_if_the_accessed_type_has_a_single_variant.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__non_utf8_string_assignment.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__not_a_constructor_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__ok_2_args.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float_in_const.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__out_of_range_erlang_float_in_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__pattern_with_incorrect_arity.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_arity_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_mismatch_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__pipe_value_type_mismatch_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__positional_argument_after_labelled.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__positional_argument_after_one_using_label_shorthand.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__private_opaque_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_invalid_operands.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_invalid_pipe_argument.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_mismatched_type_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_a_function.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_a_tuple.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_not_fn_in_use.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_similar_type_name.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_unification_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_unknown_field.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__qualified_type_use_fn_without_callback.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_access_on_inferred_variant_when_field_is_in_other_variants.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_compatible_fields_wrong_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_compatible_fields_wrong_variant.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_does_not_stop_at_first_invalid_field_5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_incompatible_but_linked_generics.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_unknown_variant.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_wrong_variant.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__record_update_wrong_variant_imported_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__recursive_var.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__remembering_record_field_when_type_checking_fails.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_5.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_6.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__same_imports_multiple_times_7.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_fn_argument.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_function_argument.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_let_variable.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__shadowed_pattern_variable.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__show_only_missing_labels.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__src_importing_dev_dependency.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__subject_int_float_guard_tuple.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_unwrapping_a_result_when_types_match.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_function_return_value_in_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_function_return_value_in_ok.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_use_returned_value_in_error.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_use_returned_value_in_ok.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_error_if_types_match.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_error_if_types_match_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_with_block.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_if_types_match_with_multiline_result_in_block.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__suggest_wrapping_a_value_into_ok_with_generic_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__true_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_2_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_arity.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_not_a_tuple.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_not_a_tuple_unbound.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_index_out_of_bounds.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_int.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__tuple_int_float.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_annotations.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_holes4.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_imported_as_value.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_1.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_used_as_a_constructor_with_more_arguments.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_variables_in_body.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__type_vars_must_be_declared.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_arg_with_label_shorthand.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_labelled_arg.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unexpected_labelled_arg_record_constructor.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_accessed_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_constructor_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_appears_in_a_variant_has_note.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_appears_in_an_imported_variant_has_note.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_that_does_not_appear_in_variant_has_no_note.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_field_update2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_imported_module_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_label.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_label_shorthand.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_import.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_typo_for_imported_module.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_module_suggest_typo_for_unimported_module.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_record_field.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_record_field_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_in_alias.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_in_alias2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_type_var_in_alias2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_2.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_3.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unknown_variable_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__unnecessary_spread_operator.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__update_multi_variant_record.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__utf16_codepoint_javascript_target.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__utf32_codepoint_javascript_target.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__utf8_codepoint_javascript_target.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__value_imported_as_type.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_number_of_subjects.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_number_of_subjects_alternative_patterns.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_arg.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_ret.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_update.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__wrong_type_var.snap │ │ │ │ │ ├── gleam_core__type___tests__errors__zero_size_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_bits_catches_everything.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_bytes_needs_catch_all.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_patterns_are_redundant.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_redundant_patterns_with_variable_size.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bit_array_overlapping_redundant_patterns_with_variable_size_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bool_false.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__bool_true.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_aliased_unqualified_value.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_alias.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_names.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_when_aliased_and_shadowed.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_module_when_shadowed.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_prelude_module_unqualified.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_prelude_module_when_shadowed.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_unqualifed_when_aliased.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__case_error_prints_unqualified_value.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__compiler_does_not_crash_when_defining_duplicate_alternative_variables.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__compiler_does_not_crash_when_matching_on_utfcodepoint.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__correct_missing_patterns_for_opaque_type.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__correct_missing_patterns_for_opaque_type_in_definition_module.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__custom_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__custom_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_3.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_4.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_5.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__discard_6.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_alternative_patterns.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_pattern_in_alternative.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__duplicated_pattern_with_multiple_alternatives.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_bool.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_custom_type.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_external.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_float.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_generic.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_int.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_list.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_multi_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__empty_case_of_string.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__float_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__float_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__guard.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__guard_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern3.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern4.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__inexhaustive_multi_pattern5.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__int_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__int_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__label_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__let_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_bool_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_bool_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_empty.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_non_empty.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_one.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_one_two.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_zero_one_two.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__list_zero_two_any.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__multiple_unreachable_prefix_patterns.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__multiple_unreachable_prefix_patterns_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__nested_type_parameter_usage.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__other_variant_unreachable_when_inferred.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__other_variant_unreachable_when_inferred2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_3.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_4.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_5.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_scientific_notation.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_scientific_notation_and_underscore.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_different_formatting.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_no_trailing_decimal.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_float_with_underscore.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_int_with_multiple_underscores.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_int_with_underscores.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__redundant_missing_patterns.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__reference_absent_type.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_3.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_4.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_5.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_6.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_7.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_bool_8.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_error.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_nil_error.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_nil_ok.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__result_ok.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__same_catch_all_bytes_are_redundant.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_1.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_2.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__string_3.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__tuple_0.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_alternative_multi_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_multi_pattern.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_prefix_pattern_after_prefix.snap │ │ │ │ │ ├── gleam_core__type___tests__exhaustiveness__unreachable_string_pattern_after_prefix.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_only_function_used_by_javascript_module.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_only_function_with_erlang_external.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__erlang_targeted_function_cant_contain_javascript_only_function.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__imported_javascript_only_function.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_constant.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_function_used_by_erlang_module.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_only_function_with_javascript_external.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__javascript_targeted_function_cant_contain_erlang_only_function.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__public_erlang_external.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__public_javascript_external.snap │ │ │ │ │ ├── gleam_core__type___tests__externals__unsupported_target_for_unused_import.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__annotation_mismatch_function_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__bad_body_function_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_guard_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_pattern_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__case_clause_then_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arg_types_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_label_shorthand_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_label_shorthand_fault_tolerance2.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_labels_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__function_call_incorrect_arity_with_labels_fault_tolerance2.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__invalid_javascript_external_do_not_stop_analysis.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_annotation_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_annotation_fault_tolerance2.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_assignment_with_pattern_fault_tolerance2.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__multiple_bad_statement_expression_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__no_impl_function_fault_tolerance.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_arg_infer_error.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_explicit_error.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_implicit_error.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_arg_type_to_fn_not_a_tuple.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_one_arg_type_to_two_args_fn.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__provide_two_args_type_to_fn_wrong_types.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__recursive_type.snap │ │ │ │ │ ├── gleam_core__type___tests__functions__unlabelled_after_labelled.snap │ │ │ │ │ ├── gleam_core__typ
Showing preview only (914K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (9786 symbols across 285 files)
FILE: compiler-cli/src/add.rs
function command (line 16) | pub fn command(paths: &ProjectPaths, packages_to_add: Vec<String>, dev: ...
function read_toml_edit (line 102) | fn read_toml_edit(name: &Utf8Path) -> Result<toml_edit::DocumentMut, Err...
function version_to_string (line 113) | fn version_to_string(version: &Version) -> String {
function displays_simple_version_correctly (line 138) | fn displays_simple_version_correctly() {
function displays_full_version_correctly (line 153) | fn displays_full_version_correctly() {
FILE: compiler-cli/src/beam_compiler.rs
type BeamCompilerInner (line 20) | struct BeamCompilerInner {
type BeamCompiler (line 27) | pub struct BeamCompiler {
method compile (line 32) | pub fn compile<IO: FileSystemWriter>(
method spawn (line 101) | fn spawn<IO: FileSystemWriter>(
method drop (line 143) | fn drop(&mut self) {
function escape_path (line 152) | fn escape_path<T: AsRef<str>>(path: T) -> String {
FILE: compiler-cli/src/build.rs
function download_dependencies (line 17) | pub fn download_dependencies(paths: &ProjectPaths, telemetry: impl Telem...
function main (line 30) | pub fn main(paths: &ProjectPaths, options: Options, manifest: Manifest) ...
function main_with_warnings (line 34) | pub(crate) fn main_with_warnings(
FILE: compiler-cli/src/build_lock.rs
type BuildLock (line 11) | pub(crate) struct BuildLock {
method new_target (line 18) | pub fn new_target(paths: &ProjectPaths, mode: Mode, target: Target) ->...
method new_packages (line 32) | pub fn new_packages(paths: &ProjectPaths) -> Result<Self> {
method lock_path (line 42) | pub fn lock_path(&self) -> Utf8PathBuf {
method lock (line 47) | pub fn lock<Telem: Telemetry + ?Sized>(&self, telemetry: &Telem) -> Re...
method lock_all_build (line 69) | pub fn lock_all_build<Telem: Telemetry>(
type Guard (line 85) | pub(crate) struct Guard(
function locking_global (line 92) | fn locking_global() {
function locking_dev_erlang (line 100) | fn locking_dev_erlang() {
function locking_prod_erlang (line 108) | fn locking_prod_erlang() {
function locking_lsp_erlang (line 116) | fn locking_lsp_erlang() {
function locking_dev_javascript (line 124) | fn locking_dev_javascript() {
function locking_prod_javascript (line 132) | fn locking_prod_javascript() {
function locking_lsp_javascript (line 140) | fn locking_lsp_javascript() {
FILE: compiler-cli/src/cli.rs
type Reporter (line 16) | pub struct Reporter;
method new (line 19) | pub fn new() -> Self {
method compiled_package (line 25) | fn compiled_package(&self, duration: Duration) {
method compiling_package (line 29) | fn compiling_package(&self, name: &str) {
method checked_package (line 33) | fn checked_package(&self, duration: Duration) {
method checking_package (line 37) | fn checking_package(&self, name: &str) {
method downloading_package (line 41) | fn downloading_package(&self, name: &str) {
method packages_downloaded (line 45) | fn packages_downloaded(&self, start: Instant, count: usize) {
method resolving_package_versions (line 49) | fn resolving_package_versions(&self) {
method running (line 53) | fn running(&self, name: &str) {
method waiting_for_build_directory_lock (line 57) | fn waiting_for_build_directory_lock(&self) {
method resolved_package_versions (line 61) | fn resolved_package_versions(&self, changes: &PackageChanges) {
function ask (line 66) | pub fn ask(question: &str) -> Result<String, Error> {
function confirm (line 79) | pub fn confirm(question: &str) -> Result<bool, Error> {
function confirm_with_text (line 87) | pub fn confirm_with_text(response: &str) -> Result<bool, Error> {
function ask_password (line 92) | pub fn ask_password(question: &str) -> Result<EcoString, Error> {
function print_publishing (line 102) | pub fn print_publishing(name: &str, version: &Version) {
function print_published (line 106) | pub fn print_published(detail: &str) {
function print_retired (line 110) | pub fn print_retired(package: &str, version: &str) {
function print_unretired (line 114) | pub fn print_unretired(package: &str, version: &str) {
function print_publishing_documentation (line 118) | pub fn print_publishing_documentation() {
function print_downloading (line 122) | fn print_downloading(text: &str) {
function print_waiting_for_build_directory_lock (line 126) | fn print_waiting_for_build_directory_lock() {
function print_resolving_versions (line 130) | fn print_resolving_versions() {
function print_compiling (line 134) | fn print_compiling(text: &str) {
function print_exported (line 138) | pub(crate) fn print_exported(text: &str) {
function print_checking (line 142) | pub(crate) fn print_checking(text: &str) {
function print_compiled (line 146) | pub(crate) fn print_compiled(duration: Duration) {
function print_checked (line 150) | pub(crate) fn print_checked(duration: Duration) {
function print_running (line 154) | pub(crate) fn print_running(text: &str) {
function print_package_changes (line 158) | pub(crate) fn print_package_changes(changes: &PackageChanges) {
function print_added (line 178) | fn print_added(text: &str) {
function print_changed (line 182) | fn print_changed(text: &str) {
function print_removed (line 186) | fn print_removed(text: &str) {
function print_generating_documentation (line 190) | pub(crate) fn print_generating_documentation() {
function print_transferring_ownership (line 194) | pub(crate) fn print_transferring_ownership() {
function print_transferred_ownership (line 198) | pub(crate) fn print_transferred_ownership() {
function print_packages_downloaded (line 202) | fn print_packages_downloaded(start: Instant, count: usize) {
function seconds (line 211) | pub fn seconds(duration: Duration) -> String {
function print_colourful_prefix (line 215) | pub fn print_colourful_prefix(prefix: &str, text: &str) {
function stderr_buffer_writer (line 233) | pub fn stderr_buffer_writer() -> BufferWriter {
function colour_forced (line 238) | fn colour_forced() -> bool {
function color_choice (line 246) | fn color_choice() -> ColorChoice {
FILE: compiler-cli/src/compile_package.rs
function command (line 21) | pub fn command(options: CompilePackage) -> Result<()> {
function load_libraries (line 67) | fn load_libraries(
FILE: compiler-cli/src/config.rs
type PackageKind (line 11) | pub enum PackageKind {
function find_package_config_for_module (line 18) | pub fn find_package_config_for_module(
function package_root (line 45) | fn package_root(package: &ManifestPackage, project_paths: &ProjectPaths)...
function root_config (line 55) | pub fn root_config(paths: &ProjectPaths) -> Result<PackageConfig, Error> {
function read (line 59) | pub fn read(config_path: Utf8PathBuf) -> Result<PackageConfig, Error> {
function ensure_config_exists (line 71) | pub fn ensure_config_exists(paths: &ProjectPaths) -> Result<(), Error> {
function package_root_hex (line 90) | fn package_root_hex() {
function package_root_git (line 109) | fn package_root_git() {
function package_root_local (line 129) | fn package_root_local() {
FILE: compiler-cli/src/dependencies.rs
type Symbols (line 46) | struct Symbols {
type CheckMajorVersions (line 63) | pub enum CheckMajorVersions {
function list (line 68) | pub fn list(paths: &ProjectPaths) -> Result<()> {
function tree (line 73) | pub fn tree(paths: &ProjectPaths, options: TreeOptions) -> Result<()> {
function get_manifest_details (line 95) | fn get_manifest_details(paths: &ProjectPaths) -> Result<(PackageConfig, ...
function list_manifest_packages (line 115) | fn list_manifest_packages<W: std::io::Write>(mut buffer: W, manifest: Ma...
function list_package_and_dependencies_tree (line 129) | fn list_package_and_dependencies_tree<W: std::io::Write>(
function list_dependencies_tree (line 172) | fn list_dependencies_tree(
function outdated (line 222) | pub fn outdated(paths: &ProjectPaths) -> Result<()> {
type UseManifest (line 238) | pub enum UseManifest {
function update (line 243) | pub fn update(paths: &ProjectPaths, packages: Vec<String>) -> Result<()> {
function cleanup (line 267) | pub fn cleanup<Telem: Telemetry>(paths: &ProjectPaths, telemetry: Telem)...
function remove_extra_requirements (line 301) | fn remove_extra_requirements(config: &PackageConfig, manifest: &mut Mani...
function parse_gleam_add_specifier (line 340) | pub fn parse_gleam_add_specifier(package: &str) -> Result<(EcoString, Re...
function resolve_and_download (line 394) | pub fn resolve_and_download<Telem: Telemetry>(
function format_versions_and_extract_longest_parts (line 415) | fn format_versions_and_extract_longest_parts(
function pretty_print_major_versions_available (line 425) | fn pretty_print_major_versions_available(versions: dependency::PackageVe...
function pretty_print_version_updates (line 434) | fn pretty_print_version_updates(versions: dependency::PackageVersionDiff...
function add_missing_packages (line 439) | async fn add_missing_packages<Telem: Telemetry>(
function remove_extra_packages (line 490) | fn remove_extra_packages<Telem: Telemetry>(
function read_manifest_from_disc (line 528) | fn read_manifest_from_disc(paths: &ProjectPaths) -> Result<Manifest> {
function write_manifest_to_disc (line 541) | fn write_manifest_to_disc(paths: &ProjectPaths, manifest: &Manifest) -> ...
type LocalPackages (line 551) | struct LocalPackages {
method extra_local_packages (line 556) | pub fn extra_local_packages(&self, manifest: &Manifest) -> Vec<(String...
method missing_local_packages (line 569) | pub fn missing_local_packages<'a>(
method read_from_disc (line 586) | pub fn read_from_disc(paths: &ProjectPaths) -> Result<Self> {
method write_to_disc (line 602) | pub fn write_to_disc(&self, paths: &ProjectPaths) -> Result<()> {
method from_manifest (line 608) | pub fn from_manifest(manifest: &Manifest) -> Self {
function is_same_requirements (line 619) | fn is_same_requirements(
function path_dependency_configs_unchanged (line 661) | fn path_dependency_configs_unchanged(
function same_requirements (line 704) | fn same_requirements(
type ProvidedPackage (line 723) | struct ProvidedPackage {
method to_hex_package (line 736) | fn to_hex_package(&self, name: &EcoString) -> hexpm::Package {
method to_manifest_package (line 766) | fn to_manifest_package(&self, name: &str) -> ManifestPackage {
type ProvidedPackageSource (line 730) | enum ProvidedPackageSource {
method to_manifest_package_source (line 781) | fn to_manifest_package_source(&self) -> ManifestPackageSource {
method to_toml (line 791) | fn to_toml(&self) -> String {
method eq (line 804) | fn eq(&self, other: &Self) -> bool {
function provide_local_package (line 829) | fn provide_local_package(
function execute_command (line 856) | fn execute_command(command: &mut Command) -> Result<std::process::Output> {
function download_git_package (line 914) | fn download_git_package(
function provide_git_package (line 986) | fn provide_git_package(
function provide_package (line 1015) | fn provide_package(
function unlock_packages (line 1106) | pub fn unlock_packages(
function find_deps_to_unlock (line 1135) | fn find_deps_to_unlock(
function lookup_package (line 1156) | async fn lookup_package(
type PackageFetcher (line 1192) | struct PackageFetcher {
method new (line 1199) | pub fn new(runtime: tokio::runtime::Handle) -> Self {
method cache_package (line 1210) | fn cache_package(&self, package: &str, result: Rc<hexpm::Package>) {
method get_dependencies (line 1243) | fn get_dependencies(&self, package: &str) -> Result<Rc<hexpm::Package>...
type Untar (line 1217) | pub struct Untar;
method boxed (line 1220) | pub fn boxed() -> Box<Self> {
method io_result_entries (line 1226) | fn io_result_entries<'a>(
method io_result_unpack (line 1233) | fn io_result_unpack(
FILE: compiler-cli/src/dependencies/dependency_manager.rs
function ensure_packages_exist_locally (line 27) | pub fn ensure_packages_exist_locally(manifest: &Manifest, packages: &[Ec...
type DependencyManagerConfig (line 42) | pub struct DependencyManagerConfig {
method into_dependency_manager (line 53) | pub fn into_dependency_manager<Telem: Telemetry, P: dependency::Packag...
type DependencyManager (line 72) | pub struct DependencyManager<Telem, P> {
function resolve_versions (line 90) | pub fn resolve_versions(
function resolve_and_download_versions (line 148) | pub fn resolve_and_download_versions(
function perform_version_resolution (line 227) | fn perform_version_resolution(
FILE: compiler-cli/src/dependencies/tests.rs
function list_manifest_format (line 20) | fn list_manifest_format() {
function tree_format (line 70) | fn tree_format() {
function tree_package_format (line 133) | fn tree_package_format() {
function tree_invert_format (line 193) | fn tree_invert_format() {
function list_tree_invalid_package_format (line 255) | fn list_tree_invalid_package_format() {
function parse_gleam_add_specifier_invalid_semver (line 314) | fn parse_gleam_add_specifier_invalid_semver() {
function parse_gleam_add_specifier_non_numeric_version (line 319) | fn parse_gleam_add_specifier_non_numeric_version() {
function parse_gleam_add_specifier_default (line 324) | fn parse_gleam_add_specifier_default() {
function parse_gleam_add_specifier_major_only (line 333) | fn parse_gleam_add_specifier_major_only() {
function parse_gleam_add_specifier_major_and_minor (line 342) | fn parse_gleam_add_specifier_major_and_minor() {
function parse_gleam_add_specifier_major_minor_and_patch (line 351) | fn parse_gleam_add_specifier_major_minor_and_patch() {
function missing_local_packages (line 360) | fn missing_local_packages() {
function extra_local_packages (line 433) | fn extra_local_packages() {
function provide_wrong_package (line 478) | fn provide_wrong_package() {
function provide_existing_package (line 503) | fn provide_existing_package() {
function provide_conflicting_package (line 535) | fn provide_conflicting_package() {
function provided_is_absolute (line 572) | fn provided_is_absolute() {
function provided_recursive (line 599) | fn provided_recursive() {
function provided_local_to_hex (line 619) | fn provided_local_to_hex() {
function provided_git_to_hex (line 677) | fn provided_git_to_hex() {
function provided_local_to_manifest (line 736) | fn provided_local_to_manifest() {
function provided_git_to_manifest (line 773) | fn provided_git_to_manifest() {
function verified_requirements_equality_with_canonicalized_paths (line 812) | fn verified_requirements_equality_with_canonicalized_paths() {
function test_path_dependency_config_updates (line 846) | fn test_path_dependency_config_updates() {
function create_testable_unlock_manifest (line 930) | fn create_testable_unlock_manifest(
function test_unlock_package (line 967) | fn test_unlock_package() {
function test_unlock_package_without_manifest (line 1002) | fn test_unlock_package_without_manifest() {
function test_unlock_nonexistent_package (line 1018) | fn test_unlock_nonexistent_package() {
function test_unlock_multiple_packages (line 1046) | fn test_unlock_multiple_packages() {
function test_unlock_packages_empty_input (line 1088) | fn test_unlock_packages_empty_input() {
function test_unlock_package_preserve_shared_deps (line 1116) | fn test_unlock_package_preserve_shared_deps() {
function test_unlock_package_with_root_dep (line 1148) | fn test_unlock_package_with_root_dep() {
function test_unlock_root_dep_package (line 1182) | fn test_unlock_root_dep_package() {
function test_unlock_package_with_and_without_root_dep (line 1212) | fn test_unlock_package_with_and_without_root_dep() {
function manifest_package (line 1241) | fn manifest_package(name: &str, version: &str, requirements: Vec<EcoStri...
function package_config (line 1254) | fn package_config(
function test_remove_do_nothing (line 1297) | fn test_remove_do_nothing() {
function test_remove_simple (line 1323) | fn test_remove_simple() {
function test_remove_package_with_transitive_dependencies (line 1338) | fn test_remove_package_with_transitive_dependencies() {
function test_remove_package_with_shared_transitive_dependencies (line 1357) | fn test_remove_package_with_shared_transitive_dependencies() {
function test_remove_package_that_is_also_a_transitive_dependency (line 1389) | fn test_remove_package_that_is_also_a_transitive_dependency() {
function test_pretty_print_major_versions_available (line 1417) | fn test_pretty_print_major_versions_available() {
function test_pretty_print_version_updates (line 1441) | fn test_pretty_print_version_updates() {
function test_ensure_packages_exist_locally_all_present (line 1465) | fn test_ensure_packages_exist_locally_all_present() {
function test_ensure_packages_exist_locally_some_missing (line 1482) | fn test_ensure_packages_exist_locally_some_missing() {
FILE: compiler-cli/src/docs.rs
function remove (line 21) | pub fn remove(package: String, version: String) -> Result<()> {
type BuildOptions (line 45) | pub struct BuildOptions {
function build (line 51) | pub fn build(paths: &ProjectPaths, options: BuildOptions) -> Result<()> {
function open_docs (line 124) | fn open_docs(path: &Utf8Path) -> Result<()> {
function build_documentation (line 133) | pub(crate) fn build_documentation(
function publish (line 170) | pub fn publish(paths: &ProjectPaths) -> Result<()> {
FILE: compiler-cli/src/export.rs
function erlang_shipment (line 28) | pub(crate) fn erlang_shipment(paths: &ProjectPaths) -> Result<()> {
function write_entrypoint_script (line 109) | fn write_entrypoint_script(
function hex_tarball (line 120) | pub fn hex_tarball(paths: &ProjectPaths) -> Result<()> {
function javascript_prelude (line 135) | pub fn javascript_prelude() -> Result<()> {
function typescript_prelude (line 140) | pub fn typescript_prelude() -> Result<()> {
function package_interface (line 145) | pub fn package_interface(paths: &ProjectPaths, out: Utf8PathBuf) -> Resu...
function package_information (line 171) | pub fn package_information(paths: &ProjectPaths, out: Utf8PathBuf) -> Re...
FILE: compiler-cli/src/fix.rs
function run (line 16) | pub fn run(paths: &ProjectPaths) -> Result<()> {
function fix_minimum_required_version (line 43) | fn fix_minimum_required_version(paths: &ProjectPaths, warnings: Vec<Warn...
function minimum_required_version_from_warnings (line 74) | fn minimum_required_version_from_warnings(warnings: Vec<Warning>) -> Opt...
FILE: compiler-cli/src/format.rs
function run (line 10) | pub fn run(stdin: bool, check: bool, files: Vec<String>) -> Result<()> {
function process_stdin (line 18) | fn process_stdin(check: bool) -> Result<()> {
function process_files (line 42) | fn process_files(check: bool, files: Vec<String>) -> Result<()> {
function check_files (line 50) | fn check_files(files: Vec<String>) -> Result<()> {
function format_files (line 60) | fn format_files(files: Vec<String>) -> Result<()> {
function unformatted_files (line 70) | pub fn unformatted_files(files: Vec<String>) -> Result<Vec<Unformatted>> {
function format_file (line 93) | fn format_file(problem_files: &mut Vec<Unformatted>, path: Utf8PathBuf) ...
function read_stdin (line 109) | pub fn read_stdin() -> Result<String> {
FILE: compiler-cli/src/fs.rs
function get_current_directory (line 31) | pub fn get_current_directory() -> Result<Utf8PathBuf, Error> {
function get_project_root (line 42) | pub fn get_project_root(path: Utf8PathBuf) -> Result<Utf8PathBuf, Error> {
function get_os (line 57) | pub fn get_os() -> OS {
function extract_distro_id (line 62) | pub fn extract_distro_id(os_release: String) -> String {
function get_distro_str (line 71) | pub fn get_distro_str() -> String {
type ProjectIO (line 85) | pub struct ProjectIO {
method new (line 90) | pub fn new() -> Self {
method boxed (line 96) | pub fn boxed() -> Box<Self> {
method read (line 102) | fn read(&self, path: &Utf8Path) -> Result<String, Error> {
method read_bytes (line 106) | fn read_bytes(&self, path: &Utf8Path) -> Result<Vec<u8>, Error> {
method is_file (line 110) | fn is_file(&self, path: &Utf8Path) -> bool {
method is_directory (line 114) | fn is_directory(&self, path: &Utf8Path) -> bool {
method reader (line 118) | fn reader(&self, path: &Utf8Path) -> Result<WrappedReader, Error> {
method read_dir (line 122) | fn read_dir(&self, path: &Utf8Path) -> Result<ReadDir> {
method modification_time (line 130) | fn modification_time(&self, path: &Utf8Path) -> Result<SystemTime, Error> {
method canonicalise (line 134) | fn canonicalise(&self, path: &Utf8Path) -> Result<Utf8PathBuf, Error> {
function modification_time (line 139) | pub fn modification_time(path: &Utf8Path) -> std::result::Result<SystemT...
method delete_directory (line 151) | fn delete_directory(&self, path: &Utf8Path) -> Result<()> {
method copy (line 155) | fn copy(&self, from: &Utf8Path, to: &Utf8Path) -> Result<()> {
method copy_dir (line 159) | fn copy_dir(&self, from: &Utf8Path, to: &Utf8Path) -> Result<()> {
method mkdir (line 163) | fn mkdir(&self, path: &Utf8Path) -> Result<(), Error> {
method hardlink (line 167) | fn hardlink(&self, from: &Utf8Path, to: &Utf8Path) -> Result<(), Error> {
method symlink_dir (line 171) | fn symlink_dir(&self, from: &Utf8Path, to: &Utf8Path) -> Result<(), Erro...
method delete_file (line 175) | fn delete_file(&self, path: &Utf8Path) -> Result<()> {
method write (line 179) | fn write(&self, path: &Utf8Path, content: &str) -> Result<(), Error> {
method write_bytes (line 183) | fn write_bytes(&self, path: &Utf8Path, content: &[u8]) -> Result<(), Err...
method exists (line 187) | fn exists(&self, path: &Utf8Path) -> bool {
method exec (line 193) | fn exec(&self, command: Command) -> Result<i32, Error> {
method compile_beam (line 229) | fn compile_beam(
method make_locker (line 245) | fn make_locker(&self, paths: &ProjectPaths, target: Target) -> Result<Bo...
method download_dependencies (line 252) | fn download_dependencies(&self, paths: &ProjectPaths) -> Result<Manifest> {
function delete_directory (line 266) | pub fn delete_directory(dir: &Utf8Path) -> Result<(), Error> {
function delete_file (line 281) | pub fn delete_file(file: &Utf8Path) -> Result<(), Error> {
function write_outputs_under (line 296) | pub fn write_outputs_under(outputs: &[OutputFile], base: &Utf8Path) -> R...
function write_output (line 307) | pub fn write_output(file: &OutputFile) -> Result<(), Error> {
function write (line 315) | pub fn write(path: &Utf8Path, text: &str) -> Result<(), Error> {
function make_executable (line 320) | pub fn make_executable(path: impl AsRef<Utf8Path>) -> Result<(), Error> {
function make_executable (line 336) | pub fn make_executable(_path: impl AsRef<Utf8Path>) -> Result<(), Error> {
function write_bytes (line 340) | pub fn write_bytes(path: &Utf8Path, bytes: &[u8]) -> Result<(), Error> {
function is_gleam_path (line 373) | fn is_gleam_path(path: &Utf8Path, dir: impl AsRef<Utf8Path>) -> bool {
function is_gleam_build_dir (line 393) | fn is_gleam_build_dir(e: &ignore::DirEntry) -> bool {
function gleam_files (line 409) | pub fn gleam_files(dir: &Utf8Path) -> impl Iterator<Item = Utf8PathBuf> ...
function native_files (line 429) | pub fn native_files(dir: &Utf8Path) -> impl Iterator<Item = Utf8PathBuf>...
function private_files (line 451) | pub fn private_files(dir: &Utf8Path) -> impl Iterator<Item = Utf8PathBuf...
function erlang_files (line 468) | pub fn erlang_files(dir: &Utf8Path) -> impl Iterator<Item = Utf8PathBuf>...
function create_tar_archive (line 488) | pub fn create_tar_archive(outputs: Vec<OutputFile>) -> Result<Vec<u8>, E...
function mkdir (line 517) | pub fn mkdir(path: impl AsRef<Utf8Path> + Debug) -> Result<(), Error> {
function read_dir (line 532) | pub fn read_dir(path: impl AsRef<Utf8Path> + Debug) -> Result<ReadDirUtf...
function module_caches_paths (line 543) | pub fn module_caches_paths(
function read (line 552) | pub fn read(path: impl AsRef<Utf8Path> + Debug) -> Result<String, Error> {
function read_bytes (line 563) | pub fn read_bytes(path: impl AsRef<Utf8Path> + Debug) -> Result<Vec<u8>,...
function reader (line 574) | pub fn reader(path: impl AsRef<Utf8Path> + Debug) -> Result<WrappedReade...
function buffered_reader (line 587) | pub fn buffered_reader<P: AsRef<Utf8Path> + Debug>(path: P) -> Result<im...
function copy (line 598) | pub fn copy(
function copy_dir (line 629) | pub fn copy_dir(
function symlink_dir (line 652) | pub fn symlink_dir(
function hardlink (line 673) | pub fn hardlink(
function is_inside_git_work_tree (line 693) | fn is_inside_git_work_tree(path: &Utf8Path) -> Result<bool, Error> {
function is_git_work_tree_root (line 722) | pub(crate) fn is_git_work_tree_root(path: &Utf8Path) -> bool {
function git_init (line 729) | pub fn git_init(path: &Utf8Path) -> Result<(), Error> {
function canonicalise (line 757) | pub fn canonicalise(path: &Utf8Path) -> Result<Utf8PathBuf, Error> {
type ConsoleWarningEmitter (line 769) | pub struct ConsoleWarningEmitter;
method emit_warning (line 772) | fn emit_warning(&self, warning: Warning) {
FILE: compiler-cli/src/fs/tests.rs
function is_inside_git_work_tree_ok (line 5) | fn is_inside_git_work_tree_ok() {
function git_init_success (line 15) | fn git_init_success() {
function git_init_already_in_git (line 26) | fn git_init_already_in_git() {
function exclude_build_dir (line 49) | fn exclude_build_dir() {
function erlang_files_include_gitignored_files (line 82) | fn erlang_files_include_gitignored_files() {
function is_gleam_path_test (line 125) | fn is_gleam_path_test() {
function extract_distro_id_test (line 148) | fn extract_distro_id_test() {
FILE: compiler-cli/src/hex.rs
function write_credentials (line 15) | pub fn write_credentials(
function retire (line 30) | pub fn retire(
function unretire (line 55) | pub fn unretire(package: String, version: String) -> Result<()> {
function revert (line 73) | pub fn revert(
function authenticate (line 121) | pub(crate) fn authenticate() -> Result<()> {
FILE: compiler-cli/src/hex/auth.rs
constant HEX_OAUTH_CLIENT_ID (line 12) | pub const HEX_OAUTH_CLIENT_ID: &str = "877731e8-cb88-45e1-9b84-9214de7da...
constant LOCAL_PASS_PROMPT (line 14) | pub const LOCAL_PASS_PROMPT: &str = "Local password";
constant API_ENV_NAME (line 15) | pub const API_ENV_NAME: &str = "HEXPM_API_KEY";
type EncryptedLegacyApiKey (line 18) | pub struct EncryptedLegacyApiKey {
type HexAuthentication (line 22) | pub struct HexAuthentication<'runtime> {
function new (line 32) | pub fn new(
function create_and_store_new_credentials_via_oauth (line 49) | pub fn create_and_store_new_credentials_via_oauth(&mut self) -> Result<h...
function poll_for_oauth_next_step (line 83) | fn poll_for_oauth_next_step(
function create_oauth_device_authorisation (line 95) | fn create_oauth_device_authorisation(
function encrypt_and_store_oauth_refresh_token (line 114) | fn encrypt_and_store_oauth_refresh_token(&mut self, tokens: &OAuthTokens...
function ask_for_new_local_password (line 147) | fn ask_for_new_local_password(&mut self) -> Result<()> {
function get_local_password (line 167) | fn get_local_password(&mut self) -> Result<EcoString> {
function get_or_create_api_credentials (line 184) | pub fn get_or_create_api_credentials(&mut self) -> Result<hexpm::Credent...
function read_env_api_key (line 196) | fn read_env_api_key() -> Result<Option<hexpm::Credentials>> {
function read_and_decrypt_and_refresh_stored_tokens (line 212) | fn read_and_decrypt_and_refresh_stored_tokens(&mut self) -> Result<Optio...
function read_stored_encrypted_oauth_refresh_token (line 241) | fn read_stored_encrypted_oauth_refresh_token(
function delete_legacy_api_key_from_filesystem (line 259) | fn delete_legacy_api_key_from_filesystem(&self) -> Result<()> {
function read_stored_legacy_api_key (line 267) | fn read_stored_legacy_api_key(&self) -> Result<Option<EncryptedLegacyApi...
function revoke_old_tokens (line 287) | fn revoke_old_tokens(
function send_user_to_oauth_verification_url (line 319) | fn send_user_to_oauth_verification_url(device_authorisation: &hexpm::OAu...
type StoredOAuthRepoCredentials (line 344) | struct StoredOAuthRepoCredentials {
type StoredOAuthCredentials (line 356) | struct StoredOAuthCredentials {
FILE: compiler-cli/src/http.rs
type HttpClient (line 18) | pub struct HttpClient;
method new (line 21) | pub fn new() -> Self {
method boxed (line 25) | pub fn boxed() -> Box<Self> {
method send (line 32) | async fn send(&self, request: Request<Vec<u8>>) -> Result<Response<Vec...
function init_client (line 55) | fn init_client() -> Result<&'static Client, Error> {
FILE: compiler-cli/src/lib.rs
type UpdateOptions (line 102) | struct UpdateOptions {
type TreeOptions (line 110) | struct TreeOptions {
type Command (line 148) | enum Command {
function template_doc (line 431) | fn template_doc() -> &'static str {
function target_doc (line 435) | fn target_doc() -> String {
function runtime_doc (line 439) | fn runtime_doc() -> String {
type ExportTarget (line 444) | pub enum ExportTarget {
type NewOptions (line 468) | pub struct NewOptions {
type CompilePackage (line 489) | pub struct CompilePackage {
type Dependencies (line 523) | enum Dependencies {
type Hex (line 541) | enum Hex {
type Owner (line 593) | enum Owner {
type Docs (line 611) | enum Docs {
function main (line 649) | pub fn main() {
function parse_and_run_command (line 668) | fn parse_and_run_command() -> Result<(), Error> {
function command_check (line 868) | fn command_check(paths: &ProjectPaths, target: Option<Target>) -> Result...
function command_build (line 885) | fn command_build(
function print_config (line 912) | fn print_config(paths: &ProjectPaths) -> Result<()> {
function clean (line 918) | fn clean(paths: &ProjectPaths) -> Result<()> {
function initialise_logger (line 922) | fn initialise_logger() {
function find_project_paths (line 933) | fn find_project_paths() -> Result<ProjectPaths> {
function project_paths_at_current_directory_without_toml (line 939) | fn project_paths_at_current_directory_without_toml() -> ProjectPaths {
function download_dependencies (line 944) | fn download_dependencies(paths: &ProjectPaths) -> Result<()> {
FILE: compiler-cli/src/lsp.rs
function main (line 12) | pub fn main() -> Result<()> {
type LspLocker (line 52) | pub struct LspLocker(BuildLock);
method new (line 55) | pub fn new(paths: &ProjectPaths, target: Target) -> Result<Self> {
method lock_for_build (line 62) | fn lock_for_build(&self) -> Result<LockGuard> {
FILE: compiler-cli/src/new.rs
constant GLEAM_STDLIB_REQUIREMENT (line 18) | const GLEAM_STDLIB_REQUIREMENT: &str = ">= 0.44.0 and < 2.0.0";
constant GLEEUNIT_REQUIREMENT (line 19) | const GLEEUNIT_REQUIREMENT: &str = ">= 1.0.0 and < 2.0.0";
constant ERLANG_OTP_VERSION (line 20) | const ERLANG_OTP_VERSION: &str = "28";
constant REBAR3_VERSION (line 21) | const REBAR3_VERSION: &str = "3";
constant ELIXIR_VERSION (line 22) | const ELIXIR_VERSION: &str = "1";
type Template (line 29) | pub enum Template {
type Creator (line 37) | pub struct Creator {
method new (line 209) | fn new(options: NewOptions, gleam_version: &'static str) -> Result<Sel...
method new_with_confirmation (line 213) | fn new_with_confirmation(
method run (line 243) | fn run(&self) -> Result<()> {
type FileToCreate (line 49) | enum FileToCreate {
method location (line 59) | pub fn location(&self, creator: &Creator) -> Utf8PathBuf {
method contents (line 76) | pub fn contents(&self, creator: &Creator) -> Option<String> {
function default_readme (line 178) | pub fn default_readme(project_name: &str) -> String {
function create (line 272) | pub fn create(options: NewOptions, version: &'static str) -> Result<()> {
function write (line 294) | fn write(path: Utf8PathBuf, contents: &str) -> Result<()> {
function validate_root_folder (line 312) | fn validate_root_folder(creator: &Creator) -> Result<(), Error> {
function validate_name (line 332) | fn validate_name(name: &str) -> Result<(), Error> {
function suggest_valid_name (line 379) | fn suggest_valid_name(invalid_name: &str, reason: &InvalidProjectNameRea...
function get_valid_project_name (line 423) | fn get_valid_project_name(
function get_foldername (line 483) | fn get_foldername(path: &str) -> Result<String, Error> {
type ProjectName (line 503) | enum ProjectName {
method decided (line 509) | fn decided(&self) -> &str {
method project_root (line 515) | fn project_root(&self, current_root: &str) -> String {
FILE: compiler-cli/src/new/tests.rs
function new (line 7) | fn new() {
function new_with_default_template (line 37) | fn new_with_default_template() {
function new_with_javascript_template (line 67) | fn new_with_javascript_template() {
function new_with_skip_git (line 97) | fn new_with_skip_git() {
function new_with_skip_github (line 118) | fn new_with_skip_github() {
function new_with_skip_git_and_github (line 142) | fn new_with_skip_git_and_github() {
function invalid_path (line 166) | fn invalid_path() {
function invalid_name (line 186) | fn invalid_name() {
function existing_directory_no_files (line 206) | fn existing_directory_no_files() {
function existing_directory_with_one_existing_file (line 230) | fn existing_directory_with_one_existing_file() {
function existing_directory_with_non_generated_file (line 255) | fn existing_directory_with_non_generated_file() {
function conflict_with_existing_files (line 286) | fn conflict_with_existing_files() {
function skip_existing_git_files_when_skip_git_is_true (line 313) | fn skip_existing_git_files_when_skip_git_is_true() {
function suggested_project_name_updates_directory (line 341) | fn suggested_project_name_updates_directory() {
function validate_name_format (line 373) | fn validate_name_format() {
function suggest_valid_names (line 402) | fn suggest_valid_names() {
FILE: compiler-cli/src/owner.rs
function transfer (line 4) | pub fn transfer(package: String, new_owner_username_or_email: String) ->...
FILE: compiler-cli/src/panic.rs
function add_handler (line 4) | pub fn add_handler() {
function print_compiler_bug_message (line 10) | fn print_compiler_bug_message(info: &PanicHookInfo<'_>) {
FILE: compiler-cli/src/publish.rs
constant CORE_TEAM_PUBLISH_PASSWORD (line 25) | const CORE_TEAM_PUBLISH_PASSWORD: &str = "Trans rights are human rights";
function command (line 27) | pub fn command(paths: &ProjectPaths, replace: bool, i_am_sure: bool) -> ...
function check_for_invalid_readme (line 136) | fn check_for_invalid_readme(config: &PackageConfig, paths: &ProjectPaths...
function check_for_name_squatting (line 175) | fn check_for_name_squatting(package: &Package) -> Result<(), Error> {
function check_for_default_main (line 213) | fn check_for_default_main(package: &Package) -> Result<(), Error> {
function is_default_main (line 232) | fn is_default_main(main: &TypedFunction, package_name: &EcoString) -> bo...
function check_for_multiple_top_level_modules (line 266) | fn check_for_multiple_top_level_modules(package: &Package, i_am_sure: bo...
function check_repo_url (line 317) | fn check_repo_url(config: &PackageConfig, i_am_sure: bool) -> Result<boo...
function check_for_version_zero (line 342) | fn check_for_version_zero(config: &PackageConfig) -> Result<bool, Error> {
function check_for_gleam_prefix (line 365) | fn check_for_gleam_prefix(config: &PackageConfig) -> Result<bool, Error> {
type Tarball (line 384) | struct Tarball {
function build_hex_tarball (line 393) | pub fn build_hex_tarball(paths: &ProjectPaths, config: &mut PackageConfi...
function do_build_hex_tarball (line 398) | fn do_build_hex_tarball(paths: &ProjectPaths, config: &mut PackageConfig...
function check_config_for_publishing (line 562) | fn check_config_for_publishing(config: &PackageConfig) -> Result<()> {
function metadata_config (line 575) | fn metadata_config<'a>(
function contents_tarball (line 622) | fn contents_tarball(
function project_files (line 642) | fn project_files(base_path: &Utf8Path) -> Result<Vec<Utf8PathBuf>> {
function generated_erlang_files (line 673) | fn generated_erlang_files(
function add_to_tar (line 714) | fn add_to_tar<P, W>(tarball: &mut tar::Builder<W>, path: P, data: &[u8])...
function add_path_to_tar (line 730) | fn add_path_to_tar<P, W>(tarball: &mut tar::Builder<W>, path: P) -> Resu...
type ReleaseMetadata (line 743) | pub struct ReleaseMetadata<'a> {
function as_erlang (line 758) | pub fn as_erlang(&self) -> String {
type ReleaseRequirement (line 807) | struct ReleaseRequirement<'a> {
function as_erlang (line 815) | pub fn as_erlang(&self) -> String {
function release_metadata_as_erlang (line 830) | fn release_metadata_as_erlang() {
function prevent_publish_local_dependency (line 910) | fn prevent_publish_local_dependency() {
function prevent_publish_git_dependency (line 924) | fn prevent_publish_git_dependency() {
function quotes (line 941) | fn quotes(x: &str) -> String {
function exported_project_files_test (line 946) | fn exported_project_files_test() {
FILE: compiler-cli/src/remove.rs
function command (line 9) | pub fn command(paths: &ProjectPaths, packages: Vec<String>) -> Result<()> {
FILE: compiler-cli/src/run.rs
type Which (line 19) | pub enum Which {
function command (line 26) | pub fn command(
function setup (line 50) | pub fn setup(
function run_erlang_command (line 160) | fn run_erlang_command(
function run_javascript_bun_command (line 200) | fn run_javascript_bun_command(
function run_javascript_node_command (line 224) | fn run_javascript_node_command(
function write_javascript_entrypoint (line 248) | fn write_javascript_entrypoint(
function run_javascript_deno_command (line 266) | fn run_javascript_deno_command(
function add_deno_flag (line 348) | fn add_deno_flag(args: &mut Vec<String>, flag: &str, flags: &DenoFlag) {
function is_gleam_module (line 360) | fn is_gleam_module(module: &str) -> bool {
function get_or_suggest_main_function (line 376) | fn get_or_suggest_main_function(
function invalid_module_names (line 405) | fn invalid_module_names() {
function valid_module_names (line 420) | fn valid_module_names() {
FILE: compiler-cli/src/shell.rs
function command (line 9) | pub fn command(paths: &ProjectPaths) -> Result<(), Error> {
FILE: compiler-cli/src/text_layout.rs
function space_table (line 16) | pub fn space_table<Grid, Row, Cell>(headers: &[impl AsRef<str>], data: G...
FILE: compiler-core/src/analyse.rs
type Inferred (line 56) | pub enum Inferred<T> {
function expect (line 63) | pub fn expect(self, message: &str) -> T {
function expect_ref (line 71) | pub fn expect_ref(&self, message: &str) -> &T {
function definition_location (line 81) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
function get_documentation (line 88) | pub fn get_documentation(&self) -> Option<&str> {
function field_map (line 95) | pub fn field_map(&self) -> Option<&FieldMap> {
type TargetSupport (line 105) | pub enum TargetSupport {
method is_enforced (line 125) | pub fn is_enforced(&self) -> bool {
function from (line 134) | fn from(error: Error) -> Self {
type ModuleAnalyzerConstructor (line 144) | pub struct ModuleAnalyzerConstructor<'a, A> {
function infer_module (line 160) | pub fn infer_module(
type ModuleAnalyzer (line 189) | struct ModuleAnalyzer<'a, A> {
function infer_module (line 213) | pub fn infer_module(mut self, mut module: UntypedModule) -> Outcome<Type...
function all_errors (line 420) | fn all_errors<T>(&mut self, error: Error) -> Outcome<T, Vec1<Error>> {
function infer_module_constant (line 424) | fn infer_module_constant(
function infer_function (line 525) | fn infer_function(
function assert_valid_javascript_external (line 839) | fn assert_valid_javascript_external(
function ensure_annotations_present (line 877) | fn ensure_annotations_present(
function ensure_function_has_an_implementation (line 899) | fn ensure_function_has_an_implementation(
function analyse_import (line 915) | fn analyse_import(
function analyse_custom_type (line 964) | fn analyse_custom_type(
function do_analyse_custom_type (line 979) | fn do_analyse_custom_type(
function register_values_from_custom_type (line 1138) | fn register_values_from_custom_type(
function register_types_from_custom_type (line 1344) | fn register_types_from_custom_type(
function register_type_alias (line 1452) | fn register_type_alias(&mut self, t: &UntypedTypeAlias, environment: &mu...
function make_type_vars (line 1538) | fn make_type_vars(
function record_if_error (line 1562) | fn record_if_error(&mut self, result: Result<(), Error>) {
function register_value_from_function (line 1568) | fn register_value_from_function(
function check_for_type_leaks (line 1676) | fn check_for_type_leaks(&mut self, value: &ValueConstructor) {
function check_name_case (line 1691) | fn check_name_case(&mut self, location: SrcSpan, name: &EcoString, kind:...
function track_feature_usage (line 1697) | fn track_feature_usage(&mut self, feature_kind: FeatureKind, location: S...
function check_shadow_import (line 1725) | fn check_shadow_import(
function validate_module_name (line 1741) | fn validate_module_name(name: &EcoString) -> Result<(), Error> {
function target_function_implementation (line 1756) | fn target_function_implementation<'a>(
function analyse_type_alias (line 1767) | fn analyse_type_alias(t: UntypedTypeAlias, environment: &mut Environment...
function infer_bit_array_option (line 1802) | pub fn infer_bit_array_option<UntypedValue, TypedValue, Typer>(
function generalise_module_constant (line 1850) | fn generalise_module_constant(
function generalise_function (line 1909) | fn generalise_function(
function assert_unique_name (line 1996) | fn assert_unique_name(
type Accessors (line 2011) | struct Accessors {
function custom_type_accessors (line 2017) | fn custom_type_accessors(constructors: &[TypeValueConstructor]) -> Resul...
function get_compatible_record_fields (line 2061) | fn get_compatible_record_fields(constructors: &[TypeValueConstructor]) -...
function get_type_dependencies (line 2146) | fn get_type_dependencies(type_: &TypeAst) -> Vec<EcoString> {
function sorted_type_aliases (line 2185) | fn sorted_type_aliases(aliases: &Vec<UntypedTypeAlias>) -> Result<Vec<&U...
FILE: compiler-core/src/analyse/imports.rs
type Importer (line 16) | pub struct Importer<'context, 'problems> {
function new (line 23) | pub fn new(
function run (line 35) | pub fn run<'code>(
function register_import (line 48) | fn register_import(&mut self, import: &UntypedImport) {
function register_unqualified_type (line 81) | fn register_unqualified_type(
function register_unqualified_value (line 135) | fn register_unqualified_value(
function check_for_invalid_imports (line 245) | fn check_for_invalid_imports(
function register_module (line 281) | fn register_module(
function check_not_a_duplicate_import (line 333) | fn check_not_a_duplicate_import(
FILE: compiler-core/src/analyse/name.rs
function valid_name (line 16) | fn valid_name(name: &EcoString) -> bool {
function valid_discard_name (line 26) | fn valid_discard_name(name: &EcoString) -> bool {
function valid_upname (line 34) | fn valid_upname(name: &EcoString) -> bool {
function check_name_case (line 40) | pub fn check_name_case(location: SrcSpan, name: &EcoString, kind: Named)...
function correct_name_case (line 63) | pub fn correct_name_case(name: &EcoString, kind: Named) -> EcoString {
function check_argument_names (line 76) | pub fn check_argument_names(names: &ArgNames, problems: &mut Problems) {
FILE: compiler-core/src/analyse/tests.rs
function module_name_validation (line 4) | fn module_name_validation() {
FILE: compiler-core/src/ast.rs
constant PIPE_VARIABLE (line 39) | pub const PIPE_VARIABLE: &str = "_pipe";
constant USE_ASSIGNMENT_VARIABLE (line 40) | pub const USE_ASSIGNMENT_VARIABLE: &str = "_use";
constant RECORD_UPDATE_VARIABLE (line 41) | pub const RECORD_UPDATE_VARIABLE: &str = "_record";
constant ASSERT_FAIL_VARIABLE (line 42) | pub const ASSERT_FAIL_VARIABLE: &str = "_assert_fail";
constant ASSERT_SUBJECT_VARIABLE (line 43) | pub const ASSERT_SUBJECT_VARIABLE: &str = "_assert_subject";
constant CAPTURE_VARIABLE (line 44) | pub const CAPTURE_VARIABLE: &str = "_capture";
constant BLOCK_VARIABLE (line 45) | pub const BLOCK_VARIABLE: &str = "_block";
type HasLocation (line 47) | pub trait HasLocation {
method location (line 48) | fn location(&self) -> SrcSpan;
method location (line 1686) | fn location(&self) -> SrcSpan {
method location (line 1707) | fn location(&self) -> SrcSpan {
method location (line 3356) | fn location(&self) -> SrcSpan {
method location (line 3443) | fn location(&self) -> SrcSpan {
type UntypedModule (line 51) | pub type UntypedModule = Module<(), Vec<TargetedDefinition>>;
method dependencies (line 145) | pub fn dependencies(&self, target: Target) -> Vec<(EcoString, SrcSpan)> {
method iter_definitions (line 159) | pub fn iter_definitions(&self, target: Target) -> impl Iterator<Item =...
method into_iter_definitions (line 166) | pub fn into_iter_definitions(self, target: Target) -> impl Iterator<It...
type TypedModule (line 52) | pub type TypedModule = Module<type_::ModuleInterface, TypedDefinitions>;
method find_node (line 73) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method find_statement (line 91) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatemen...
method definitions_len (line 100) | pub fn definitions_len(&self) -> usize {
type Module (line 55) | pub struct Module<Info, Definitions> {
function erlang_name (line 67) | pub fn erlang_name(&self) -> EcoString {
type TypedDefinitions (line 114) | pub struct TypedDefinitions {
type TargetedDefinition (line 133) | pub struct TargetedDefinition {
method is_for (line 139) | pub fn is_for(&self, target: Target) -> bool {
function module_dependencies_test (line 175) | fn module_dependencies_test() {
type TypedArg (line 201) | pub type TypedArg = Arg<Arc<Type>>;
method find_node (line 238) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type UntypedArg (line 202) | pub type UntypedArg = Arg<()>;
type Arg (line 205) | pub struct Arg<T> {
function set_type (line 213) | pub fn set_type<B>(self, t: B) -> Arg<B> {
function get_variable_name (line 222) | pub fn get_variable_name(&self) -> Option<&EcoString> {
function is_capture_hole (line 226) | pub fn is_capture_hole(&self) -> bool {
type ArgNames (line 253) | pub enum ArgNames {
method get_label (line 277) | pub fn get_label(&self) -> Option<&EcoString> {
method get_variable_name (line 285) | pub fn get_variable_name(&self) -> Option<&EcoString> {
type TypedRecordConstructor (line 293) | pub type TypedRecordConstructor = RecordConstructor<Arc<Type>>;
type RecordConstructor (line 296) | pub struct RecordConstructor<T> {
function put_doc (line 306) | pub fn put_doc(&mut self, new_doc: (u32, EcoString)) {
type TypedRecordConstructorArg (line 311) | pub type TypedRecordConstructorArg = RecordConstructorArg<Arc<Type>>;
type RecordConstructorArg (line 314) | pub struct RecordConstructorArg<T> {
function put_doc (line 323) | pub fn put_doc(&mut self, new_doc: (u32, EcoString)) {
type TypeAstConstructor (line 329) | pub struct TypeAstConstructor {
type TypeAstFn (line 339) | pub struct TypeAstFn {
type TypeAstVar (line 346) | pub struct TypeAstVar {
type TypeAstTuple (line 352) | pub struct TypeAstTuple {
type TypeAstHole (line 358) | pub struct TypeAstHole {
type TypeAst (line 364) | pub enum TypeAst {
method location (line 373) | pub fn location(&self) -> SrcSpan {
method is_logically_equal (line 383) | pub fn is_logically_equal(&self, other: &TypeAst) -> bool {
method find_node (line 474) | pub fn find_node(&self, byte_index: u32, type_: Arc<Type>) -> Option<L...
method print (line 545) | pub fn print(&self, buffer: &mut EcoString) {
function type_ast_print_fn (line 593) | fn type_ast_print_fn() {
function type_ast_print_constructor (line 617) | fn type_ast_print_constructor() {
function type_ast_print_tuple (line 641) | fn type_ast_print_tuple() {
type Publicity (line 690) | pub enum Publicity {
method is_private (line 697) | pub fn is_private(&self) -> bool {
method is_internal (line 704) | pub fn is_internal(&self) -> bool {
method is_public (line 711) | pub fn is_public(&self) -> bool {
method is_importable (line 718) | pub fn is_importable(&self) -> bool {
type Function (line 742) | pub struct Function<T, Expr> {
type TypedFunction (line 760) | pub type TypedFunction = Function<Arc<Type>, TypedExpr>;
method find_node (line 770) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method find_statement (line 821) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatemen...
method main_function (line 831) | pub fn main_function(&self) -> Option<&TypedFunction> {
type UntypedFunction (line 761) | pub type UntypedFunction = Function<(), UntypedExpr>;
function full_location (line 764) | pub fn full_location(&self) -> SrcSpan {
type UntypedImport (line 842) | pub type UntypedImport = Import<()>;
type TypedImport (line 843) | pub type TypedImport = Import<EcoString>;
method find_node (line 882) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type Import (line 856) | pub struct Import<PackageName> {
function used_name (line 868) | pub fn used_name(&self) -> Option<EcoString> {
function alias_location (line 876) | pub(crate) fn alias_location(&self) -> Option<SrcSpan> {
type UntypedModuleConstant (line 921) | pub type UntypedModuleConstant = ModuleConstant<(), ()>;
type TypedModuleConstant (line 922) | pub type TypedModuleConstant = ModuleConstant<Arc<Type>, EcoString>;
method find_node (line 949) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type ModuleConstant (line 933) | pub struct ModuleConstant<T, ConstantRecordTag> {
type UntypedCustomType (line 969) | pub type UntypedCustomType = CustomType<()>;
type TypedCustomType (line 970) | pub type TypedCustomType = CustomType<Arc<Type>>;
method find_node (line 1017) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type CustomType (line 988) | pub struct CustomType<T> {
function full_location (line 1011) | pub fn full_location(&self) -> SrcSpan {
type UntypedTypeAlias (line 1046) | pub type UntypedTypeAlias = TypeAlias<()>;
type TypedTypeAlias (line 1047) | pub type TypedTypeAlias = TypeAlias<Arc<Type>>;
method find_node (line 1071) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type TypeAlias (line 1058) | pub struct TypeAlias<T> {
type UntypedDefinition (line 1085) | pub type UntypedDefinition = Definition<(), UntypedExpr, (), ()>;
type Definition (line 1088) | pub enum Definition<T, Expr, ConstantRecordTag, PackageName> {
function location (line 1097) | pub fn location(&self) -> SrcSpan {
function is_import (line 1111) | pub fn is_import(&self) -> bool {
function is_function (line 1119) | pub fn is_function(&self) -> bool {
function is_custom_type (line 1127) | pub fn is_custom_type(&self) -> bool {
function get_doc (line 1131) | pub fn get_doc(&self) -> Option<EcoString> {
function is_internal (line 1150) | pub fn is_internal(&self) -> bool {
type UnqualifiedImport (line 1163) | pub struct UnqualifiedImport {
method used_name (line 1172) | pub fn used_name(&self) -> &EcoString {
type Layer (line 1178) | pub enum Layer {
method is_value (line 1186) | pub fn is_value(&self) -> bool {
type BinOp (line 1192) | pub enum BinOp {
method precedence (line 1240) | pub fn precedence(&self) -> u8 {
method name (line 1271) | pub fn name(&self) -> &'static str {
method operator_kind (line 1298) | pub fn operator_kind(&self) -> OperatorKind {
method can_be_grouped_with (line 1318) | pub fn can_be_grouped_with(&self, other: &BinOp) -> bool {
method is_float_operator (line 1322) | pub fn is_float_operator(&self) -> bool {
method is_bool_operator (line 1350) | fn is_bool_operator(&self) -> bool {
method is_int_operator (line 1376) | pub fn is_int_operator(&self) -> bool {
method float_equivalent (line 1404) | pub fn float_equivalent(&self) -> Option<BinOp> {
method int_equivalent (line 1431) | pub fn int_equivalent(&self) -> Option<BinOp> {
type OperatorKind (line 1227) | pub enum OperatorKind {
constant PIPE_PRECEDENCE (line 1237) | pub const PIPE_PRECEDENCE: u8 = 6;
type CallArg (line 1460) | pub struct CallArg<A> {
type ImplicitCallArgOrigin (line 1468) | pub enum ImplicitCallArgOrigin {
function is_implicit (line 1492) | pub fn is_implicit(&self) -> bool {
function is_use_implicit_callback (line 1497) | pub fn is_use_implicit_callback(&self) -> bool {
function find_node (line 1506) | pub fn find_node<'a>(
function find_statement (line 1565) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatement> {
function is_capture_hole (line 1576) | pub fn is_capture_hole(&self) -> bool {
function find_node (line 1607) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
function find_node (line 1622) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
function is_capture_hole (line 1637) | pub fn is_capture_hole(&self) -> bool {
function uses_label_shorthand (line 1669) | pub fn uses_label_shorthand(&self) -> bool {
function label_shorthand_name (line 1676) | pub fn label_shorthand_name(&self) -> Option<&EcoString> {
type RecordBeingUpdated (line 1692) | pub struct RecordBeingUpdated<A> {
type RecordUpdateArg (line 1698) | pub struct RecordUpdateArg<A> {
type UntypedRecordUpdateArg (line 1704) | pub type UntypedRecordUpdateArg = RecordUpdateArg<UntypedExpr>;
function uses_label_shorthand (line 1714) | pub fn uses_label_shorthand(&self) -> bool {
type MultiPattern (line 1719) | pub type MultiPattern<Type> = Vec<Pattern<Type>>;
type UntypedMultiPattern (line 1721) | pub type UntypedMultiPattern = MultiPattern<()>;
type TypedMultiPattern (line 1722) | pub type TypedMultiPattern = MultiPattern<Arc<Type>>;
type TypedClause (line 1724) | pub type TypedClause = Clause<TypedExpr, Arc<Type>, EcoString>;
method location (line 1744) | pub fn location(&self) -> SrcSpan {
method find_node (line 1755) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method pattern_location (line 1773) | pub fn pattern_location(&self) -> SrcSpan {
method returned_subject (line 1798) | pub fn returned_subject(&self) -> Option<usize> {
method bound_variables (line 1812) | pub fn bound_variables(&self) -> impl Iterator<Item = BoundVariable> {
method syntactically_eq (line 1819) | fn syntactically_eq(&self, other: &Self) -> bool {
type UntypedClause (line 1726) | pub type UntypedClause = Clause<UntypedExpr, (), ()>;
type Clause (line 1729) | pub struct Clause<Expr, Type, RecordTag> {
function pattern_count (line 1738) | pub fn pattern_count(&self) -> usize {
function pattern_and_expression_are_the_same (line 1865) | fn pattern_and_expression_are_the_same(pattern: &TypedPattern, expressio...
type UntypedClauseGuard (line 2137) | pub type UntypedClauseGuard = ClauseGuard<(), ()>;
type TypedClauseGuard (line 2138) | pub type TypedClauseGuard = ClauseGuard<Arc<Type>, EcoString>;
method type_ (line 2238) | pub fn type_(&self) -> Arc<Type> {
method find_node (line 2275) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method referenced_variables (line 2319) | pub(crate) fn referenced_variables(&self) -> im::HashSet<&EcoString> {
method syntactically_eq (line 2336) | fn syntactically_eq(&self, other: &Self) -> bool {
method definition_location (line 2416) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
type ClauseGuard (line 2141) | pub enum ClauseGuard<Type, RecordTag> {
function location (line 2197) | pub fn location(&self) -> SrcSpan {
function precedence (line 2214) | pub fn precedence(&self) -> u8 {
function bin_op_name (line 2222) | pub fn bin_op_name(&self) -> Option<BinOp> {
type SrcSpan (line 2456) | pub struct SrcSpan {
method new (line 2462) | pub fn new(start: u32, end: u32) -> Self {
method contains (line 2466) | pub fn contains(&self, byte_index: u32) -> bool {
method contains_span (line 2470) | pub fn contains_span(&self, span: SrcSpan) -> bool {
method merge (line 2485) | pub fn merge(&self, with: &SrcSpan) -> SrcSpan {
method is_empty (line 2492) | pub fn is_empty(&self) -> bool {
method len (line 2496) | pub fn len(&self) -> usize {
type DefinitionLocation (line 2502) | pub struct DefinitionLocation {
type UntypedPattern (line 2507) | pub type UntypedPattern = Pattern<()>;
type TypedPattern (line 2508) | pub type TypedPattern = Pattern<Arc<Type>>;
method syntactically_eq (line 2829) | fn syntactically_eq(&self, other: &Self) -> bool {
method definition_location (line 3017) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
method get_documentation (line 3036) | pub fn get_documentation(&self) -> Option<&str> {
method type_ (line 3055) | pub fn type_(&self) -> Arc<Type> {
method find_node (line 3081) | fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method unused_arguments (line 3187) | pub fn unused_arguments(&self) -> Option<PatternUnusedArguments> {
method always_matches (line 3222) | pub fn always_matches(&self) -> bool {
method bound_variables (line 3241) | pub fn bound_variables(&self) -> Vec<BoundVariable> {
method collect_bound_variables (line 3247) | fn collect_bound_variables(&self, variables: &mut Vec<BoundVariable>) {
type Pattern (line 2511) | pub enum Pattern<Type> {
type TypedBitArraySize (line 2609) | pub type TypedBitArraySize = BitArraySize<Arc<Type>>;
type BitArraySize (line 2612) | pub enum BitArraySize<Type> {
type IntOperator (line 2640) | pub enum IntOperator {
method precedence (line 2649) | pub fn precedence(&self) -> u8 {
method to_bin_op (line 2657) | pub fn to_bin_op(&self) -> BinOp {
function location (line 2669) | pub fn location(&self) -> SrcSpan {
function non_zero_compile_time_number (line 2678) | pub fn non_zero_compile_time_number(&self) -> bool {
function syntactically_eq (line 2686) | fn syntactically_eq(&self, other: &Self) -> bool {
type TypedTailPattern (line 2732) | pub type TypedTailPattern = TailPattern<Arc<Type>>;
type UntypedTailPattern (line 2734) | pub type UntypedTailPattern = TailPattern<()>;
type TailPattern (line 2739) | pub struct TailPattern<Type> {
type AssignName (line 2761) | pub enum AssignName {
method name (line 2767) | pub fn name(&self) -> &EcoString {
method to_arg_names (line 2773) | pub fn to_arg_names(self, location: SrcSpan) -> ArgNames {
method assigned_name (line 2780) | pub fn assigned_name(&self) -> Option<&str> {
function location (line 2789) | pub fn location(&self) -> SrcSpan {
function is_discard (line 2813) | pub fn is_discard(&self) -> bool {
function is_variable (line 2818) | pub fn is_variable(&self) -> bool {
function is_string (line 2823) | pub fn is_string(&self) -> bool {
type BoundVariable (line 2987) | pub struct BoundVariable {
method name (line 3007) | pub fn name(&self) -> EcoString {
type BoundVariableName (line 2994) | pub enum BoundVariableName {
type PatternUnusedArguments (line 3350) | pub struct PatternUnusedArguments {
type AssignmentKind (line 3362) | pub enum AssignmentKind<Expression> {
function is_assert (line 3403) | pub fn is_assert(&self) -> bool {
type UntypedExprBitArraySegment (line 3413) | pub type UntypedExprBitArraySegment = BitArraySegment<UntypedExpr, ()>;
type TypedExprBitArraySegment (line 3414) | pub type TypedExprBitArraySegment = BitArraySegment<TypedExpr, Arc<Type>>;
method find_node (line 3592) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method syntactically_eq (line 3596) | fn syntactically_eq(&self, other: &Self) -> bool {
type UntypedConstantBitArraySegment (line 3416) | pub type UntypedConstantBitArraySegment = BitArraySegment<UntypedConstan...
type TypedConstantBitArraySegment (line 3417) | pub type TypedConstantBitArraySegment = BitArraySegment<TypedConstant, A...
method find_node (line 3701) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method syntactically_eq (line 3709) | fn syntactically_eq(&self, other: &Self) -> bool {
type UntypedPatternBitArraySegment (line 3419) | pub type UntypedPatternBitArraySegment = BitArraySegment<UntypedPattern,...
type TypedPatternBitArraySegment (line 3420) | pub type TypedPatternBitArraySegment = BitArraySegment<TypedPattern, Arc...
method find_node (line 3682) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method syntactically_eq (line 3690) | fn syntactically_eq(&self, other: &Self) -> bool {
type BitArraySegment (line 3423) | pub struct BitArraySegment<Value, Type> {
type Endianness (line 3431) | pub enum Endianness {
method is_big (line 3437) | pub fn is_big(&self) -> bool {
function value_unwrapping_assign (line 3451) | pub fn value_unwrapping_assign(&self) -> &Pattern<Type> {
function has_native_option (line 3472) | pub fn has_native_option(&self) -> bool {
function has_utf16_codepoint_option (line 3479) | pub fn has_utf16_codepoint_option(&self) -> bool {
function has_utf32_codepoint_option (line 3486) | pub fn has_utf32_codepoint_option(&self) -> bool {
function has_utf16_option (line 3493) | pub fn has_utf16_option(&self) -> bool {
function has_utf32_option (line 3500) | pub fn has_utf32_option(&self) -> bool {
function endianness (line 3506) | pub fn endianness(&self) -> Endianness {
function signed (line 3518) | pub(crate) fn signed(&self) -> bool {
function size (line 3524) | pub fn size(&self) -> Option<&Value> {
function unit (line 3546) | pub fn unit(&self) -> u8 {
function has_bits_option (line 3571) | pub(crate) fn has_bits_option(&self) -> bool {
function has_bytes_option (line 3577) | pub(crate) fn has_bytes_option(&self) -> bool {
function has_type_option (line 3586) | pub(crate) fn has_type_option(&self) -> bool {
function check_for_truncated_value (line 3610) | pub fn check_for_truncated_value(&self) -> Option<BitArraySegmentTruncat...
function bits_size (line 3642) | fn bits_size(&self) -> Option<BigInt> {
function truncate (line 3665) | fn truncate(literal_value: &BigInt, segment_bits: i64) -> BigInt {
type BitArraySegmentTruncation (line 3670) | pub struct BitArraySegmentTruncation {
type TypedConstantBitArraySegmentOption (line 3719) | pub type TypedConstantBitArraySegmentOption = BitArrayOption<TypedConsta...
type BitArrayOption (line 3722) | pub enum BitArrayOption<Value> {
function value (line 3796) | pub fn value(&self) -> Option<&A> {
function location (line 3818) | pub fn location(&self) -> SrcSpan {
function label (line 3840) | pub fn label(&self) -> EcoString {
function is_type_option (line 3862) | fn is_type_option(&self) -> bool {
function syntactically_eq (line 3885) | fn syntactically_eq(&self, other: &Self, compare_sizes: impl Fn(&A, &A) ...
function referenced_variables (line 3956) | fn referenced_variables(&self) -> im::HashSet<&EcoString> {
function find_node (line 3981) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
function find_node (line 4005) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type TodoKind (line 4029) | pub enum TodoKind {
type GroupedDefinitions (line 4037) | pub struct GroupedDefinitions {
method new (line 4046) | pub fn new(definitions: impl IntoIterator<Item = UntypedDefinition>) -...
method len (line 4056) | pub fn len(&self) -> usize {
method add (line 4067) | fn add(&mut self, statement: UntypedDefinition) {
type Statement (line 4080) | pub enum Statement<TypeT, ExpressionT> {
type UntypedUse (line 4091) | pub type UntypedUse = Use<(), UntypedExpr>;
type TypedUse (line 4092) | pub type TypedUse = Use<Arc<Type>, TypedExpr>;
method find_node (line 4154) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method callback_arguments (line 4170) | pub fn callback_arguments(&self) -> Option<&Vec<TypedArg>> {
type Use (line 4095) | pub struct Use<TypeT, ExpressionT> {
type UntypedUseAssignment (line 4143) | pub type UntypedUseAssignment = UseAssignment<()>;
type TypedUseAssignment (line 4144) | pub type TypedUseAssignment = UseAssignment<Arc<Type>>;
type UseAssignment (line 4147) | pub struct UseAssignment<TypeT> {
type TypedStatement (line 4183) | pub type TypedStatement = Statement<Arc<Type>, TypedExpr>;
method is_println (line 4222) | pub fn is_println(&self) -> bool {
method location (line 4231) | pub fn location(&self) -> SrcSpan {
method last_location (line 4245) | pub fn last_location(&self) -> SrcSpan {
method type_ (line 4254) | pub fn type_(&self) -> Arc<Type> {
method definition_location (line 4263) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
method find_node (line 4272) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method find_statement (line 4293) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatemen...
method type_defining_location (line 4316) | pub fn type_defining_location(&self) -> SrcSpan {
method is_pure_value_constructor (line 4325) | fn is_pure_value_constructor(&self) -> bool {
method syntactically_eq (line 4339) | fn syntactically_eq(&self, other: &Self) -> bool {
type UntypedStatement (line 4184) | pub type UntypedStatement = Statement<(), UntypedExpr>;
method location (line 4202) | pub fn location(&self) -> SrcSpan {
method start_byte_index (line 4211) | pub fn start_byte_index(&self) -> u32 {
function is_expression (line 4191) | pub fn is_expression(&self) -> bool {
function is_use (line 4196) | pub fn is_use(&self) -> bool {
type Assignment (line 4369) | pub struct Assignment<TypeT, ExpressionT> {
type TypedAssignment (line 4380) | pub type TypedAssignment = Assignment<Arc<Type>, TypedExpr>;
method find_node (line 4384) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method type_ (line 4395) | pub fn type_(&self) -> Arc<Type> {
type UntypedAssignment (line 4381) | pub type UntypedAssignment = Assignment<(), UntypedExpr>;
type TypedAssert (line 4400) | pub type TypedAssert = Assert<TypedExpr>;
method find_node (line 4411) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
type UntypedAssert (line 4401) | pub type UntypedAssert = Assert<UntypedExpr>;
type Assert (line 4404) | pub struct Assert<Expression> {
type TypedPipelineAssignment (line 4448) | pub struct TypedPipelineAssignment {
method find_node (line 4455) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method find_statement (line 4459) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatemen...
method type_ (line 4463) | pub fn type_(&self) -> Arc<Type> {
type PipelineAssignmentKind (line 4472) | pub enum PipelineAssignmentKind {
FILE: compiler-core/src/ast/constant.rs
type TypedConstant (line 5) | pub type TypedConstant = Constant<Arc<Type>, EcoString>;
method type_ (line 96) | pub fn type_(&self) -> Arc<Type> {
method find_node (line 112) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method definition_location (line 177) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
method referenced_variables (line 201) | pub(crate) fn referenced_variables(&self) -> im::HashSet<&EcoString> {
method syntactically_eq (line 246) | pub(crate) fn syntactically_eq(&self, other: &Self) -> bool {
method list_elements (line 388) | pub fn list_elements(&self) -> Option<Vec<&Self>> {
type UntypedConstant (line 6) | pub type UntypedConstant = Constant<(), ()>;
type Constant (line 10) | pub enum Constant<T, RecordTag> {
method type_ (line 425) | fn type_(&self) -> Arc<Type> {
function location (line 431) | pub fn location(&self) -> SrcSpan {
function can_have_multiple_per_line (line 448) | pub fn can_have_multiple_per_line(&self) -> bool {
method location (line 467) | fn location(&self) -> SrcSpan {
function as_int_literal (line 473) | fn as_int_literal(&self) -> Option<BigInt> {
FILE: compiler-core/src/ast/tests.rs
function compile_module (line 27) | fn compile_module(src: &str) -> TypedModule {
function get_bare_expression (line 61) | fn get_bare_expression(statement: &TypedStatement) -> &TypedExpr {
function compile_expression (line 70) | fn compile_expression(src: &str) -> TypedStatement {
function find_node_todo (line 172) | fn find_node_todo() {
function find_node_todo_with_string (line 201) | fn find_node_todo_with_string() {
function find_node_string (line 236) | fn find_node_string() {
function find_node_float (line 265) | fn find_node_float() {
function find_node_int (line 294) | fn find_node_int() {
function find_node_var (line 323) | fn find_node_var() {
function find_node_sequence (line 385) | fn find_node_sequence() {
function find_node_list (line 398) | fn find_node_list() {
function find_node_tuple (line 494) | fn find_node_tuple() {
function find_node_binop (line 597) | fn find_node_binop() {
function find_node_tuple_index (line 609) | fn find_node_tuple_index() {
function find_node_module_select (line 644) | fn find_node_module_select() {
function find_node_fn (line 691) | fn find_node_fn() {
function find_node_call (line 747) | fn find_node_call() {
function find_node_record_access (line 839) | fn find_node_record_access() {
function find_node_record_update (line 901) | fn find_node_record_update() {
function find_node_case (line 976) | fn find_node_case() {
function find_node_bool (line 1053) | fn find_node_bool() {
function find_node_statement_fn (line 1122) | fn find_node_statement_fn() {
function find_node_statement_import (line 1144) | fn find_node_statement_import() {
function find_node_use (line 1161) | fn find_node_use() {
FILE: compiler-core/src/ast/typed.rs
type TypedExpr (line 12) | pub enum TypedExpr {
method is_println (line 208) | pub fn is_println(&self) -> bool {
method find_node (line 227) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method find_statement (line 435) | pub fn find_statement(&self, byte_index: u32) -> Option<&TypedStatemen...
method self_if_contains_location (line 597) | fn self_if_contains_location(&self, byte_index: u32) -> Option<Located...
method is_non_zero_compile_time_number (line 605) | pub fn is_non_zero_compile_time_number(&self) -> bool {
method is_zero_compile_time_number (line 634) | pub fn is_zero_compile_time_number(&self) -> bool {
method location (line 663) | pub fn location(&self) -> SrcSpan {
method type_defining_location (line 692) | pub fn type_defining_location(&self) -> SrcSpan {
method definition_location (line 721) | pub fn definition_location(&self) -> Option<DefinitionLocation> {
method type_ (line 764) | pub fn type_(&self) -> Arc<Type> {
method is_literal (line 793) | pub fn is_literal(&self) -> bool {
method is_known_bool (line 841) | pub fn is_known_bool(&self) -> bool {
method is_literal_string (line 873) | pub fn is_literal_string(&self) -> bool {
method is_var (line 881) | pub fn is_var(&self) -> bool {
method get_documentation (line 885) | pub fn get_documentation(&self) -> Option<&str> {
method is_case (line 919) | pub fn is_case(&self) -> bool {
method is_pipeline (line 927) | pub fn is_pipeline(&self) -> bool {
method is_pure_value_constructor (line 931) | pub fn is_pure_value_constructor(&self) -> bool {
method called_function_purity (line 1023) | pub fn called_function_purity(&self) -> Purity {
method is_record_literal (line 1076) | pub fn is_record_literal(&self) -> bool {
method is_record_constructor_function (line 1112) | pub fn is_record_constructor_function(&self) -> bool {
method variant_index (line 1158) | pub fn variant_index(&self) -> Option<u16> {
method record_constructor_arity (line 1203) | pub fn record_constructor_arity(&self) -> Option<u16> {
method var_constructor (line 1240) | pub fn var_constructor(&self) -> Option<(&ValueConstructor, &EcoString...
method is_panic (line 1252) | pub(crate) fn is_panic(&self) -> bool {
method call_arguments (line 1256) | pub(crate) fn call_arguments(&self) -> Option<&Vec<TypedCallArg>> {
method fn_expression_body (line 1264) | pub(crate) fn fn_expression_body(&self) -> Option<&Vec1<TypedStatement...
method last_location (line 1274) | pub fn last_location(&self) -> SrcSpan {
method field_map (line 1304) | pub fn field_map(&self) -> Option<&FieldMap> {
method is_invalid (line 1338) | pub fn is_invalid(&self) -> bool {
method syntactically_eq (line 1351) | pub fn syntactically_eq(&self, other: &TypedExpr) -> bool {
method is_todo_with_no_message (line 1644) | pub fn is_todo_with_no_message(&self) -> bool {
method as_int_literal (line 1678) | fn as_int_literal(&self) -> Option<BigInt> {
function pairwise_all (line 1652) | pub(crate) fn pairwise_all<A>(one: &[A], other: &[A], function: impl Fn(...
function from (line 1657) | fn from(expression: &'a TypedExpr) -> Self {
method location (line 1666) | fn location(&self) -> SrcSpan {
method type_ (line 1672) | fn type_(&self) -> Arc<Type> {
type InvalidExpression (line 1688) | pub enum InvalidExpression {
FILE: compiler-core/src/ast/untyped.rs
type UntypedExpr (line 8) | pub enum UntypedExpr {
method location (line 151) | pub fn location(&self) -> SrcSpan {
method start_byte_index (line 181) | pub fn start_byte_index(&self) -> u32 {
method bin_op_precedence (line 207) | pub fn bin_op_precedence(&self) -> u8 {
method bin_op_name (line 233) | pub fn bin_op_name(&self) -> Option<&BinOp> {
method can_have_multiple_per_line (line 241) | pub fn can_have_multiple_per_line(&self) -> bool {
method is_tuple (line 271) | pub fn is_tuple(&self) -> bool {
method is_call (line 279) | pub fn is_call(&self) -> bool {
method is_binop (line 284) | pub fn is_binop(&self) -> bool {
method is_pipeline (line 289) | pub fn is_pipeline(&self) -> bool {
method is_todo (line 294) | pub fn is_todo(&self) -> bool {
method is_panic (line 299) | pub fn is_panic(&self) -> bool {
method location (line 305) | fn location(&self) -> SrcSpan {
type FunctionLiteralKind (line 311) | pub enum FunctionLiteralKind {
method is_capture (line 318) | pub fn is_capture(&self) -> bool {
FILE: compiler-core/src/ast/visit.rs
type Visit (line 70) | pub trait Visit<'ast> {
method visit_typed_module (line 71) | fn visit_typed_module(&mut self, module: &'ast TypedModule) {
method visit_typed_function (line 75) | fn visit_typed_function(&mut self, fun: &'ast TypedFunction) {
method visit_typed_module_constant (line 79) | fn visit_typed_module_constant(&mut self, constant: &'ast TypedModuleC...
method visit_typed_custom_type (line 83) | fn visit_typed_custom_type(&mut self, custom_type: &'ast TypedCustomTy...
method visit_typed_type_alias (line 87) | fn visit_typed_type_alias(&mut self, type_alias: &'ast TypedTypeAlias) {
method visit_typed_import (line 91) | fn visit_typed_import(&mut self, import: &'ast TypedImport) {
method visit_typed_expr (line 95) | fn visit_typed_expr(&mut self, expr: &'ast TypedExpr) {
method visit_typed_expr_echo (line 99) | fn visit_typed_expr_echo(
method visit_typed_expr_int (line 109) | fn visit_typed_expr_int(
method visit_typed_expr_float (line 118) | fn visit_typed_expr_float(
method visit_typed_expr_string (line 127) | fn visit_typed_expr_string(
method visit_typed_expr_block (line 136) | fn visit_typed_expr_block(
method visit_typed_expr_pipeline (line 144) | fn visit_typed_expr_pipeline(
method visit_typed_expr_var (line 162) | fn visit_typed_expr_var(
method visit_typed_expr_fn (line 171) | fn visit_typed_expr_fn(
method visit_typed_expr_list (line 191) | fn visit_typed_expr_list(
method visit_typed_expr_call (line 201) | fn visit_typed_expr_call(
method visit_typed_expr_bin_op (line 211) | fn visit_typed_expr_bin_op(
method visit_typed_expr_case (line 223) | fn visit_typed_expr_case(
method visit_typed_expr_record_access (line 235) | fn visit_typed_expr_record_access(
method visit_typed_expr_module_select (line 258) | fn visit_typed_expr_module_select(
method visit_typed_expr_tuple (line 280) | fn visit_typed_expr_tuple(
method visit_typed_expr_tuple_index (line 289) | fn visit_typed_expr_tuple_index(
method visit_typed_expr_todo (line 299) | fn visit_typed_expr_todo(
method visit_typed_expr_panic (line 309) | fn visit_typed_expr_panic(
method visit_typed_expr_bit_array (line 318) | fn visit_typed_expr_bit_array(
method visit_typed_expr_record_update (line 327) | fn visit_typed_expr_record_update(
method visit_typed_expr_negate_bool (line 338) | fn visit_typed_expr_negate_bool(&mut self, location: &'ast SrcSpan, va...
method visit_typed_expr_negate_int (line 342) | fn visit_typed_expr_negate_int(&mut self, location: &'ast SrcSpan, val...
method visit_typed_expr_invalid (line 346) | fn visit_typed_expr_invalid(
method visit_typed_statement (line 355) | fn visit_typed_statement(&mut self, statement: &'ast TypedStatement) {
method visit_typed_assignment (line 359) | fn visit_typed_assignment(&mut self, assignment: &'ast TypedAssignment) {
method visit_typed_use (line 363) | fn visit_typed_use(&mut self, use_: &'ast TypedUse) {
method visit_typed_assert (line 367) | fn visit_typed_assert(&mut self, assert: &'ast TypedAssert) {
method visit_typed_pipeline_assignment (line 371) | fn visit_typed_pipeline_assignment(&mut self, assignment: &'ast TypedP...
method visit_typed_call_arg (line 375) | fn visit_typed_call_arg(&mut self, arg: &'ast TypedCallArg) {
method visit_typed_clause (line 379) | fn visit_typed_clause(&mut self, clause: &'ast TypedClause) {
method visit_typed_clause_guard (line 383) | fn visit_typed_clause_guard(&mut self, guard: &'ast TypedClauseGuard) {
method visit_typed_clause_guard_var (line 387) | fn visit_typed_clause_guard_var(
method visit_typed_clause_guard_tuple_index (line 398) | fn visit_typed_clause_guard_tuple_index(
method visit_typed_clause_guard_field_access (line 408) | fn visit_typed_clause_guard_field_access(
method visit_typed_clause_guard_module_select (line 420) | fn visit_typed_clause_guard_module_select(
method visit_typed_expr_bit_array_segment (line 444) | fn visit_typed_expr_bit_array_segment(&mut self, segment: &'ast TypedE...
method visit_typed_bit_array_option (line 448) | fn visit_typed_bit_array_option(&mut self, option: &'ast BitArrayOptio...
method visit_typed_pattern (line 452) | fn visit_typed_pattern(&mut self, pattern: &'ast TypedPattern) {
method visit_typed_pattern_int (line 456) | fn visit_typed_pattern_int(&mut self, location: &'ast SrcSpan, value: ...
method visit_typed_pattern_float (line 460) | fn visit_typed_pattern_float(&mut self, location: &'ast SrcSpan, value...
method visit_typed_pattern_string (line 464) | fn visit_typed_pattern_string(&mut self, location: &'ast SrcSpan, valu...
method visit_typed_pattern_variable (line 468) | fn visit_typed_pattern_variable(
method visit_typed_pattern_bit_array_size (line 478) | fn visit_typed_pattern_bit_array_size(&mut self, size: &'ast TypedBitA...
method visit_typed_bit_array_size_int (line 482) | fn visit_typed_bit_array_size_int(&mut self, location: &'ast SrcSpan, ...
method visit_typed_bit_array_size_variable (line 486) | fn visit_typed_bit_array_size_variable(
method visit_typed_pattern_assign (line 496) | fn visit_typed_pattern_assign(
method visit_typed_pattern_discard (line 505) | fn visit_typed_pattern_discard(
method visit_typed_pattern_list (line 514) | fn visit_typed_pattern_list(
method visit_typed_pattern_constructor (line 525) | fn visit_typed_pattern_constructor(
method visit_typed_pattern_call_arg (line 549) | fn visit_typed_pattern_call_arg(&mut self, arg: &'ast CallArg<TypedPat...
method visit_typed_pattern_tuple (line 553) | fn visit_typed_pattern_tuple(
method visit_typed_pattern_bit_array (line 561) | fn visit_typed_pattern_bit_array(
method visit_typed_pattern_bit_array_option (line 569) | fn visit_typed_pattern_bit_array_option(&mut self, option: &'ast BitAr...
method visit_typed_pattern_string_prefix (line 573) | fn visit_typed_pattern_string_prefix(
method visit_typed_pattern_invalid (line 593) | fn visit_typed_pattern_invalid(&mut self, location: &'ast SrcSpan, typ...
method visit_type_ast (line 597) | fn visit_type_ast(
method visit_type_ast_constructor (line 608) | fn visit_type_ast_constructor(
method visit_type_ast_fn (line 628) | fn visit_type_ast_fn(
method visit_type_ast_var (line 646) | fn visit_type_ast_var(&mut self, location: &'ast SrcSpan, name: &'ast ...
method visit_type_ast_tuple (line 650) | fn visit_type_ast_tuple(
method visit_type_ast_hole (line 659) | fn visit_type_ast_hole(
method visit_typed_constant (line 668) | fn visit_typed_constant(&mut self, constant: &'ast TypedConstant) {
method visit_typed_constant_int (line 672) | fn visit_typed_constant_int(
method visit_typed_constant_float (line 681) | fn visit_typed_constant_float(
method visit_typed_constant_string (line 690) | fn visit_typed_constant_string(&mut self, location: &'ast SrcSpan, val...
method visit_typed_constant_tuple (line 694) | fn visit_typed_constant_tuple(
method visit_typed_constant_list (line 703) | fn visit_typed_constant_list(
method visit_typed_constant_record (line 714) | fn visit_typed_constant_record(
method visit_typed_constant_record_update (line 739) | fn visit_typed_constant_record_update(
method visit_typed_constant_bit_array (line 765) | fn visit_typed_constant_bit_array(
method visit_typed_constant_var (line 773) | fn visit_typed_constant_var(
method visit_typed_constant_string_concatenation (line 784) | fn visit_typed_constant_string_concatenation(
method visit_typed_constant_invalid (line 793) | fn visit_typed_constant_invalid(
function visit_typed_constant_invalid (line 803) | fn visit_typed_constant_invalid<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_string_concatenation (line 812) | fn visit_typed_constant_string_concatenation<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_var (line 822) | pub fn visit_typed_constant_var<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_bit_array (line 833) | fn visit_typed_constant_bit_array<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_record (line 842) | pub fn visit_typed_constant_record<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_record_update (line 859) | pub fn visit_typed_constant_record_update<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_list (line 877) | fn visit_typed_constant_list<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_tuple (line 892) | fn visit_typed_constant_tuple<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_string (line 903) | fn visit_typed_constant_string<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_float (line 911) | fn visit_typed_constant_float<'a, V: Visit<'a> + ?Sized>(
function visit_typed_constant_int (line 920) | fn visit_typed_constant_int<'a, V: Visit<'a> + ?Sized>(
function visit_typed_module (line 929) | pub fn visit_typed_module<'a, V>(v: &mut V, module: &'a TypedModule)
function visit_typed_function (line 962) | pub fn visit_typed_function<'a, V>(v: &mut V, fun: &'a TypedFunction)
function visit_type_ast (line 980) | pub fn visit_type_ast<'a, V>(v: &mut V, node: &'a TypeAst, type_: Option...
function visit_type_ast_constructor (line 1031) | pub fn visit_type_ast_constructor<'a, V>(
function visit_type_ast_fn (line 1050) | pub fn visit_type_ast_fn<'a, V>(
function visit_type_ast_var (line 1072) | pub fn visit_type_ast_var<'a, V>(_v: &mut V, _location: &'a SrcSpan, _na...
function visit_type_ast_tuple (line 1079) | pub fn visit_type_ast_tuple<'a, V>(
function visit_type_ast_hole (line 1096) | pub fn visit_type_ast_hole<'a, V>(
function visit_typed_module_constant (line 1107) | pub fn visit_typed_module_constant<'a, V>(v: &mut V, constant: &'a Typed...
function visit_typed_constant (line 1117) | pub fn visit_typed_constant<'a, V: Visit<'a> + ?Sized>(v: &mut V, consta...
function visit_typed_custom_type (line 1206) | pub fn visit_typed_custom_type<'a, V>(v: &mut V, custom_type: &'a TypedC...
function visit_typed_type_alias (line 1217) | pub fn visit_typed_type_alias<'a, V>(v: &mut V, type_alias: &'a TypedTyp...
function visit_typed_import (line 1224) | pub fn visit_typed_import<'a, V>(_v: &mut V, _import: &'a TypedImport)
function visit_typed_expr (line 1230) | pub fn visit_typed_expr<'a, V>(v: &mut V, node: &'a TypedExpr)
function visit_typed_expr_int (line 1397) | pub fn visit_typed_expr_int<'a, V>(
function visit_typed_expr_float (line 1407) | pub fn visit_typed_expr_float<'a, V>(
function visit_typed_expr_string (line 1417) | pub fn visit_typed_expr_string<'a, V>(
function visit_typed_expr_block (line 1427) | pub fn visit_typed_expr_block<'a, V>(
function visit_typed_expr_pipeline (line 1439) | pub fn visit_typed_expr_pipeline<'a, V>(
function visit_typed_pipeline_assignment (line 1457) | pub fn visit_typed_pipeline_assignment<'a, V>(v: &mut V, assignment: &'a...
function visit_typed_expr_var (line 1464) | pub fn visit_typed_expr_var<'a, V>(
function visit_typed_expr_fn (line 1475) | pub fn visit_typed_expr_fn<'a, V>(
function visit_typed_expr_list (line 1503) | pub fn visit_typed_expr_list<'a, V>(
function visit_typed_expr_call (line 1521) | pub fn visit_typed_expr_call<'a, V>(
function visit_typed_expr_bin_op (line 1536) | pub fn visit_typed_expr_bin_op<'a, V>(
function visit_typed_expr_case (line 1551) | pub fn visit_typed_expr_case<'a, V>(
function visit_typed_expr_record_access (line 1571) | pub fn visit_typed_expr_record_access<'a, V>(
function visit_typed_expr_module_select (line 1587) | pub fn visit_typed_expr_module_select<'a, V>(
function visit_typed_expr_tuple (line 1602) | pub fn visit_typed_expr_tuple<'a, V>(
function visit_typed_expr_tuple_index (line 1615) | pub fn visit_typed_expr_tuple_index<'a, V>(
function visit_typed_expr_todo (line 1627) | pub fn visit_typed_expr_todo<'a, V>(
function visit_typed_expr_echo (line 1641) | pub fn visit_typed_expr_echo<'a, V>(
function visit_typed_expr_panic (line 1658) | pub fn visit_typed_expr_panic<'a, V>(
function visit_typed_expr_bit_array (line 1671) | pub fn visit_typed_expr_bit_array<'a, V>(
function visit_typed_expr_record_update (line 1684) | pub fn visit_typed_expr_record_update<'a, V>(
function visit_typed_expr_negate_bool (line 1703) | pub fn visit_typed_expr_negate_bool<'a, V>(v: &mut V, _location: &'a Src...
function visit_typed_expr_negate_int (line 1710) | pub fn visit_typed_expr_negate_int<'a, V>(v: &mut V, _location: &'a SrcS...
function visit_typed_statement (line 1717) | pub fn visit_typed_statement<'a, V>(v: &mut V, statement: &'a TypedState...
function visit_typed_assignment (line 1729) | pub fn visit_typed_assignment<'a, V>(v: &mut V, assignment: &'a TypedAss...
function visit_typed_use (line 1740) | pub fn visit_typed_use<'a, V>(v: &mut V, use_: &'a TypedUse)
function visit_typed_assert (line 1748) | pub fn visit_typed_assert<'a, V>(v: &mut V, assert: &'a TypedAssert)
function visit_typed_call_arg (line 1758) | pub fn visit_typed_call_arg<'a, V>(v: &mut V, arg: &'a TypedCallArg)
function visit_typed_clause (line 1765) | pub fn visit_typed_clause<'a, V>(v: &mut V, clause: &'a TypedClause)
function visit_typed_clause_guard (line 1783) | pub fn visit_typed_clause_guard<'a, V>(v: &mut V, guard: &'a TypedClause...
function visit_typed_clause_guard_var (line 1842) | pub fn visit_typed_clause_guard_var<'a, V>(
function visit_typed_clause_guard_tuple_index (line 1854) | pub fn visit_typed_clause_guard_tuple_index<'a, V>(
function visit_typed_clause_guard_field_access (line 1866) | pub fn visit_typed_clause_guard_field_access<'a, V>(
function visit_typed_clause_guard_module_select (line 1880) | pub fn visit_typed_clause_guard_module_select<'a, V>(
function visit_typed_expr_bit_array_segment (line 1895) | pub fn visit_typed_expr_bit_array_segment<'a, V>(v: &mut V, segment: &'a...
function visit_typed_bit_array_option (line 1905) | pub fn visit_typed_bit_array_option<'a, V>(v: &mut V, option: &'a BitArr...
function visit_typed_pattern (line 1939) | pub fn visit_typed_pattern<'a, V>(v: &mut V, pattern: &'a TypedPattern)
function visit_typed_pattern_int (line 2020) | fn visit_typed_pattern_int<'a, V>(_v: &mut V, _location: &'a SrcSpan, _v...
function visit_typed_pattern_float (line 2026) | pub fn visit_typed_pattern_float<'a, V>(_v: &mut V, _location: &'a SrcSp...
function visit_typed_pattern_string (line 2032) | pub fn visit_typed_pattern_string<'a, V>(_v: &mut V, _location: &'a SrcS...
function visit_typed_pattern_variable (line 2038) | pub fn visit_typed_pattern_variable<'a, V>(
function visit_typed_pattern_bit_array_size (line 2049) | pub fn visit_typed_pattern_bit_array_size<'a, V>(v: &mut V, size: &'a Ty...
function visit_typed_bit_array_size_int (line 2073) | pub fn visit_typed_bit_array_size_int<'a, V>(
function visit_typed_bit_array_size_variable (line 2082) | pub fn visit_typed_bit_array_size_variable<'a, V>(
function visit_typed_pattern_assign (line 2093) | pub fn visit_typed_pattern_assign<'a, V>(
function visit_typed_pattern_discard (line 2104) | pub fn visit_typed_pattern_discard<'a, V>(
function visit_typed_pattern_list (line 2114) | pub fn visit_typed_pattern_list<'a, V>(
function visit_typed_pattern_constructor (line 2132) | pub fn visit_typed_pattern_constructor<'a, V>(
function visit_typed_pattern_call_arg (line 2150) | pub fn visit_typed_pattern_call_arg<'a, V>(v: &mut V, argument: &'a Call...
function visit_typed_pattern_tuple (line 2157) | pub fn visit_typed_pattern_tuple<'a, V>(
function visit_typed_pattern_bit_array (line 2169) | pub fn visit_typed_pattern_bit_array<'a, V>(
function visit_typed_pattern_bit_array_option (line 2184) | pub fn visit_typed_pattern_bit_array_option<'a, V>(
function visit_typed_pattern_string_prefix (line 2220) | pub fn visit_typed_pattern_string_prefix<'a, V>(
function visit_typed_pattern_invalid (line 2233) | pub fn visit_typed_pattern_invalid<'a, V>(_v: &mut V, _location: &'a Src...
function visit_typed_expr_invalid (line 2239) | pub fn visit_typed_expr_invalid<'a, V>(
FILE: compiler-core/src/ast_folder.rs
type UntypedModuleFolder (line 25) | pub trait UntypedModuleFolder: TypeAstFolder + UntypedExprFolder {
method fold_module (line 27) | fn fold_module(&mut self, mut module: UntypedModule) -> UntypedModule {
method walk_function_definition (line 70) | fn walk_function_definition(&mut self, mut function: UntypedFunction) ...
method walk_type_alias (line 91) | fn walk_type_alias(&mut self, mut type_alias: UntypedTypeAlias) -> Unt...
method walk_custom_type (line 97) | fn walk_custom_type(&mut self, mut custom_type: UntypedCustomType) -> ...
method walk_import (line 118) | fn walk_import(&mut self, i: UntypedImport) -> UntypedDefinition {
method walk_module_constant (line 123) | fn walk_module_constant(&mut self, mut constant: UntypedModuleConstant...
method fold_function_definition (line 129) | fn fold_function_definition(
method fold_type_alias (line 137) | fn fold_type_alias(
method fold_custom_type (line 145) | fn fold_custom_type(
method fold_import (line 153) | fn fold_import(&mut self, import: UntypedImport, _target: Option<Targe...
method fold_module_constant (line 157) | fn fold_module_constant(
type TypeAstFolder (line 167) | pub trait TypeAstFolder {
method fold_type (line 173) | fn fold_type(&mut self, type_: TypeAst) -> TypeAst {
method update_type (line 179) | fn update_type(&mut self, type_: TypeAst) -> TypeAst {
method walk_type (line 190) | fn walk_type(&mut self, type_: TypeAst) -> TypeAst {
method fold_all_types (line 213) | fn fold_all_types(&mut self, types: Vec<TypeAst>) -> Vec<TypeAst> {
method fold_type_constructor (line 220) | fn fold_type_constructor(&mut self, constructor: TypeAstConstructor) -...
method fold_type_fn (line 224) | fn fold_type_fn(&mut self, function: TypeAstFn) -> TypeAst {
method fold_type_tuple (line 228) | fn fold_type_tuple(&mut self, tuple: TypeAstTuple) -> TypeAst {
method fold_type_var (line 232) | fn fold_type_var(&mut self, var: TypeAstVar) -> TypeAst {
method fold_type_hole (line 236) | fn fold_type_hole(&mut self, hole: TypeAstHole) -> TypeAst {
type UntypedExprFolder (line 242) | pub trait UntypedExprFolder: TypeAstFolder + UntypedConstantFolder + Pat...
method fold_expr (line 248) | fn fold_expr(&mut self, expression: UntypedExpr) -> UntypedExpr {
method update_expr (line 254) | fn update_expr(&mut self, expression: UntypedExpr) -> UntypedExpr {
method walk_expr (line 364) | fn walk_expr(&mut self, expression: UntypedExpr) -> UntypedExpr {
method fold_arg (line 596) | fn fold_arg(&mut self, arg: UntypedArg) -> UntypedArg {
method fold_statement (line 613) | fn fold_statement(&mut self, statement: UntypedStatement) -> UntypedSt...
method update_statement (line 619) | fn update_statement(&mut self, statement: UntypedStatement) -> Untyped...
method walk_statement (line 631) | fn walk_statement(&mut self, statement: UntypedStatement) -> UntypedSt...
method fold_use_assignment (line 700) | fn fold_use_assignment(&mut self, use_: UntypedUseAssignment) -> Untyp...
method fold_int (line 714) | fn fold_int(&mut self, location: SrcSpan, value: EcoString, int_value:...
method fold_float (line 722) | fn fold_float(
method fold_string (line 735) | fn fold_string(&mut self, location: SrcSpan, value: EcoString) -> Unty...
method fold_block (line 739) | fn fold_block(&mut self, location: SrcSpan, statements: Vec1<UntypedSt...
method fold_var (line 746) | fn fold_var(&mut self, location: SrcSpan, name: EcoString) -> UntypedE...
method fold_fn (line 750) | fn fold_fn(
method fold_list (line 769) | fn fold_list(
method fold_call (line 782) | fn fold_call(
method fold_bin_op (line 795) | fn fold_bin_op(
method fold_pipe_line (line 812) | fn fold_pipe_line(&mut self, expressions: Vec1<UntypedExpr>) -> Untype...
method fold_case (line 816) | fn fold_case(
method fold_field_access (line 829) | fn fold_field_access(
method fold_tuple (line 844) | fn fold_tuple(&mut self, location: SrcSpan, elements: Vec<UntypedExpr>...
method fold_tuple_index (line 848) | fn fold_tuple_index(
method fold_todo (line 861) | fn fold_todo(
method fold_echo (line 874) | fn fold_echo(
method fold_panic (line 889) | fn fold_panic(&mut self, location: SrcSpan, message: Option<Box<Untype...
method fold_bit_array (line 893) | fn fold_bit_array(
method fold_record_update (line 901) | fn fold_record_update(
method fold_negate_bool (line 916) | fn fold_negate_bool(&mut self, location: SrcSpan, value: Box<UntypedEx...
method fold_negate_int (line 920) | fn fold_negate_int(&mut self, location: SrcSpan, value: Box<UntypedExp...
method fold_assignment (line 924) | fn fold_assignment(&mut self, assignment: UntypedAssignment) -> Untype...
method fold_use (line 928) | fn fold_use(&mut self, use_: UntypedUse) -> UntypedUse {
method fold_assert (line 932) | fn fold_assert(&mut self, assert: UntypedAssert) -> UntypedAssert {
type UntypedConstantFolder (line 938) | pub trait UntypedConstantFolder {
method fold_constant (line 940) | fn fold_constant(&mut self, constant: UntypedConstant) -> UntypedConst...
method update_constant (line 946) | fn update_constant(&mut self, constant: UntypedConstant) -> UntypedCon...
method fold_constant_int (line 1031) | fn fold_constant_int(
method fold_constant_float (line 1044) | fn fold_constant_float(
method fold_constant_string (line 1057) | fn fold_constant_string(&mut self, location: SrcSpan, value: EcoString...
method fold_constant_tuple (line 1061) | fn fold_constant_tuple(
method fold_constant_list (line 1073) | fn fold_constant_list(
method fold_constant_record (line 1087) | fn fold_constant_record(
method fold_constant_record_update (line 1106) | fn fold_constant_record_update(
method fold_constant_bit_array (line 1128) | fn fold_constant_bit_array(
method fold_constant_var (line 1136) | fn fold_constant_var(
method fold_constant_string_concatenation (line 1151) | fn fold_constant_string_concatenation(
method fold_constant_invalid (line 1164) | fn fold_constant_invalid(
method walk_constant (line 1177) | fn walk_constant(&mut self, constant: UntypedConstant) -> UntypedConst...
type PatternFolder (line 1299) | pub trait PatternFolder {
method fold_pattern (line 1301) | fn fold_pattern(&mut self, pattern: UntypedPattern) -> UntypedPattern {
method update_pattern (line 1307) | fn update_pattern(&mut self, pattern: UntypedPattern) -> UntypedPattern {
method fold_pattern_int (line 1395) | fn fold_pattern_int(
method fold_pattern_float (line 1408) | fn fold_pattern_float(
method fold_pattern_string (line 1421) | fn fold_pattern_string(&mut self, location: SrcSpan, value: EcoString)...
method fold_pattern_var (line 1425) | fn fold_pattern_var(
method fold_pattern_bit_array_size (line 1439) | fn fold_pattern_bit_array_size(&mut self, size: BitArraySize<()>) -> U...
method fold_bit_array_size (line 1443) | fn fold_bit_array_size(&mut self, size: BitArraySize<()>) -> BitArrayS...
method fold_bit_array_size_int (line 1471) | fn fold_bit_array_size_int(
method fold_bit_array_size_variable (line 1484) | fn fold_bit_array_size_variable(
method fold_pattern_assign (line 1497) | fn fold_pattern_assign(
method fold_pattern_discard (line 1510) | fn fold_pattern_discard(&mut self, name: EcoString, location: SrcSpan)...
method fold_pattern_list (line 1518) | fn fold_pattern_list(
method fold_pattern_constructor (line 1532) | fn fold_pattern_constructor(
method fold_pattern_tuple (line 1553) | fn fold_pattern_tuple(
method fold_pattern_bit_array (line 1561) | fn fold_pattern_bit_array(
method fold_pattern_string_prefix (line 1569) | fn fold_pattern_string_prefix(
method fold_pattern_invalid (line 1588) | fn fold_pattern_invalid(&mut self, location: SrcSpan) -> UntypedPattern {
method walk_pattern (line 1596) | fn walk_pattern(&mut self, pattern: UntypedPattern) -> UntypedPattern {
FILE: compiler-core/src/bit_array.rs
function type_options_for_value (line 13) | pub fn type_options_for_value<TypedValue>(
function type_options_for_pattern (line 23) | pub fn type_options_for_pattern<TypedValue>(
type SegmentOptionCategories (line 39) | struct SegmentOptionCategories<'a, T> {
function new (line 48) | fn new() -> Self {
function segment_type (line 58) | fn segment_type(&self) -> Arc<Type> {
type TypeOptionsMode (line 88) | enum TypeOptionsMode {
function type_options (line 93) | fn type_options<TypedValue>(
type GetLiteralValue (line 339) | pub trait GetLiteralValue {
method as_int_literal (line 340) | fn as_int_literal(&self) -> Option<BigInt>;
method as_int_literal (line 344) | fn as_int_literal(&self) -> Option<BigInt> {
function is_unicode (line 366) | fn is_unicode<T>(opt: &BitArrayOption<T>) -> bool {
function err (line 380) | fn err<A>(error: ErrorType, location: SrcSpan) -> Result<A, Error> {
type Error (line 385) | pub struct Error {
type ErrorType (line 391) | pub enum ErrorType {
type UnsupportedOption (line 426) | pub enum UnsupportedOption {
FILE: compiler-core/src/build.rs
type Target (line 58) | pub enum Target {
method as_presentable_str (line 68) | pub fn as_presentable_str(&self) -> &str {
method variant_strings (line 75) | pub fn variant_strings() -> Vec<EcoString> {
method is_javascript (line 83) | pub fn is_javascript(&self) -> bool {
method is_erlang (line 91) | pub fn is_erlang(&self) -> bool {
type Compile (line 101) | pub enum Compile {
type Codegen (line 111) | pub enum Codegen {
method should_codegen (line 118) | fn should_codegen(&self, is_root_package: bool) -> bool {
type Runtime (line 130) | pub enum Runtime {
method as_presentable_str (line 143) | pub fn as_presentable_str(&self) -> &str {
method default (line 153) | fn default() -> Self {
type TargetCodegenConfiguration (line 159) | pub enum TargetCodegenConfiguration {
method target (line 170) | pub fn target(&self) -> Target {
type ErlangAppCodegenConfiguration (line 179) | pub struct ErlangAppCodegenConfiguration {
type Mode (line 200) | pub enum Mode {
method includes_dev_code (line 209) | pub fn includes_dev_code(&self) -> bool {
method includes_dev_dependencies (line 216) | pub fn includes_dev_dependencies(&self) -> bool {
function mode_includes_dev_code (line 225) | fn mode_includes_dev_code() {
type Package (line 232) | pub struct Package {
method attach_doc_and_module_comments (line 239) | pub fn attach_doc_and_module_comments(&mut self) {
method into_modules_hashmap (line 245) | pub fn into_modules_hashmap(self) -> HashMap<String, Module> {
type Module (line 254) | pub struct Module {
method erlang_name (line 309) | pub fn erlang_name(&self) -> EcoString {
method compiled_erlang_path (line 313) | pub fn compiled_erlang_path(&self) -> Utf8PathBuf {
method find_node (line 319) | pub fn find_node(&self, byte_index: u32) -> Option<Located<'_>> {
method attach_doc_and_module_comments (line 323) | pub fn attach_doc_and_module_comments(&mut self) {
type DocumentableDefinition (line 270) | enum DocumentableDefinition<'a> {
function location (line 279) | pub fn location(&self) -> SrcSpan {
function put_doc (line 289) | pub fn put_doc(&mut self, new_documentation: (u32, EcoString)) {
function module_erlang_name (line 398) | pub fn module_erlang_name(gleam_name: &EcoString) -> EcoString {
type UnqualifiedImport (line 403) | pub struct UnqualifiedImport<'a> {
type ExpressionPosition (line 414) | pub enum ExpressionPosition<'a> {
type Located (line 423) | pub enum Located<'a> {
function type_location (line 468) | fn type_location(
function definition_location (line 479) | pub fn definition_location(
function type_ (line 549) | pub(crate) fn type_(&self) -> Option<Arc<Type>> {
function type_definition_locations (line 573) | pub fn type_definition_locations(
function type_to_definition_locations (line 592) | fn type_to_definition_locations<'a>(
function type_constructor_from_modules (line 663) | pub fn type_constructor_from_modules(
type Origin (line 677) | pub enum Origin {
method is_src (line 688) | pub fn is_src(&self) -> bool {
method is_test (line 696) | pub fn is_test(&self) -> bool {
method is_dev (line 704) | pub fn is_dev(&self) -> bool {
method folder_name (line 710) | pub fn folder_name(&self) -> &str {
function doc_comments_before (line 719) | fn doc_comments_before<'a>(
type SourceFingerprint (line 750) | pub struct SourceFingerprint(u64);
method new (line 753) | pub fn new(source: &str) -> Self {
method to_numerical_string (line 757) | pub fn to_numerical_string(&self) -> String {
type Outcome (line 765) | pub enum Outcome<T, E> {
function unwrap (line 782) | pub fn unwrap(self) -> T {
function expect (line 791) | pub fn expect(self, e: &'static str) -> T {
function into_result (line 799) | pub fn into_result(self) -> Result<T, E> {
function map (line 806) | pub fn map<T2>(self, f: impl FnOnce(T) -> T2) -> Outcome<T2, E> {
FILE: compiler-core/src/build/elixir_libraries.rs
constant ELIXIR_EXECUTABLE (line 9) | const ELIXIR_EXECUTABLE: &str = "elixir";
constant ELIXIR_EXECUTABLE (line 11) | const ELIXIR_EXECUTABLE: &str = "elixir.bat";
constant ELIXIR_LIBS (line 14) | const ELIXIR_LIBS: [&str; 4] = ["eex", "elixir", "logger", "mix"];
type ElixirLibraries (line 16) | pub struct ElixirLibraries<'a, IO> {
function new (line 23) | fn new(io: &'a IO, build_dir: &'a Utf8PathBuf, subprocess_stdio: Stdio) ...
function make_available (line 36) | pub fn make_available(
function cleanup (line 51) | fn cleanup(&self) {
function paths_cache_filename (line 57) | fn paths_cache_filename(&self) -> &'static str {
function paths_cache_path (line 61) | fn paths_cache_path(&self) -> Utf8PathBuf {
function run (line 65) | fn run(&self) -> Result<(), Error> {
FILE: compiler-core/src/build/module_loader.rs
type ModuleLoader (line 24) | pub(crate) struct ModuleLoader<'a, IO> {
function load (line 50) | pub fn load(&self, file: GleamFile) -> Result<Input> {
function read_cache_metadata (line 90) | fn read_cache_metadata(&self, source_file: &GleamFile) -> Result<Option<...
function read_source (line 109) | fn read_source(
function cached (line 127) | fn cached(&self, file: GleamFile, meta: CacheMetadata) -> CachedModule {
function read_source (line 138) | pub(crate) fn read_source<IO>(
FILE: compiler-core/src/build/module_loader/tests.rs
function no_cache_present (line 10) | fn no_cache_present() {
function cache_present_and_fresh (line 28) | fn cache_present_and_fresh() {
function cache_present_and_stale (line 47) | fn cache_present_and_stale() {
function cache_present_and_stale_but_source_is_the_same (line 66) | fn cache_present_and_stale_but_source_is_the_same() {
function cache_present_and_stale_source_is_the_same_lsp_mode (line 85) | fn cache_present_and_stale_source_is_the_same_lsp_mode() {
function cache_present_and_stale_source_is_the_same_lsp_mode_and_invalidated (line 105) | fn cache_present_and_stale_source_is_the_same_lsp_mode_and_invalidated() {
function cache_present_without_codegen_when_required (line 126) | fn cache_present_without_codegen_when_required() {
function cache_present_with_codegen_when_required (line 146) | fn cache_present_with_codegen_when_required() {
function cache_present_without_codegen_when_not_required (line 166) | fn cache_present_without_codegen_when_not_required() {
constant TEST_SOURCE_1 (line 185) | const TEST_SOURCE_1: &'static str = "const x = 1";
constant TEST_SOURCE_2 (line 186) | const TEST_SOURCE_2: &'static str = "const x = 2";
function write_cache (line 188) | fn write_cache(
function write_src (line 207) | fn write_src(fs: &InMemoryFileSystem, source: &str, path: &str, seconds:...
function make_loader (line 213) | fn make_loader<'a>(
FILE: compiler-core/src/build/native_file_copier.rs
type CopiedNativeFiles (line 18) | pub(crate) struct CopiedNativeFiles {
type NativeFileCopier (line 23) | pub(crate) struct NativeFileCopier<'a, IO> {
function new (line 38) | pub(crate) fn new(
function run (line 62) | pub fn run(mut self) -> Result<CopiedNativeFiles> {
function copy_files (line 87) | fn copy_files(&mut self, src_root: &Utf8Path) -> Result<()> {
function copy (line 95) | fn copy(&mut self, file: Utf8PathBuf, src_root: &Utf8Path) -> Result<()> {
function check_for_duplicate (line 163) | fn check_for_duplicate(&mut self, relative_path: &Utf8PathBuf) -> Result...
function check_for_conflicting_javascript_modules (line 174) | fn check_for_conflicting_javascript_modules(
function check_for_conflicting_erlang_modules (line 221) | fn check_for_conflicting_erlang_modules(
FILE: compiler-core/src/build/native_file_copier/tests.rs
function root (line 14) | fn root() -> &'static Utf8PathBuf {
function root_out (line 19) | fn root_out() -> &'static Utf8PathBuf {
function javascript_files_are_copied_from_src (line 25) | fn javascript_files_are_copied_from_src() {
function javascript_files_are_copied_from_test (line 44) | fn javascript_files_are_copied_from_test() {
function javascript_files_are_copied_from_dev (line 63) | fn javascript_files_are_copied_from_dev() {
function mjavascript_files_are_copied_from_src (line 82) | fn mjavascript_files_are_copied_from_src() {
function mjavascript_files_are_copied_from_test (line 101) | fn mjavascript_files_are_copied_from_test() {
function mjavascript_files_are_copied_from_dev (line 120) | fn mjavascript_files_are_copied_from_dev() {
function cjavascript_files_are_copied_from_src (line 139) | fn cjavascript_files_are_copied_from_src() {
function cjavascript_files_are_copied_from_test (line 158) | fn cjavascript_files_are_copied_from_test() {
function cjavascript_files_are_copied_from_dev (line 177) | fn cjavascript_files_are_copied_from_dev() {
function typescript_files_are_copied_from_src (line 196) | fn typescript_files_are_copied_from_src() {
function typescript_files_are_copied_from_test (line 215) | fn typescript_files_are_copied_from_test() {
function typescript_files_are_copied_from_dev (line 234) | fn typescript_files_are_copied_from_dev() {
function all_javascript_files_are_copied_from_src_subfolders (line 253) | fn all_javascript_files_are_copied_from_src_subfolders() {
function all_javascript_files_are_copied_from_test_subfolders (line 284) | fn all_javascript_files_are_copied_from_test_subfolders() {
function all_javascript_files_are_copied_from_dev_subfolders (line 316) | fn all_javascript_files_are_copied_from_dev_subfolders() {
function erlang_header_files_are_copied_from_src (line 347) | fn erlang_header_files_are_copied_from_src() {
function erlang_header_files_are_copied_from_test (line 366) | fn erlang_header_files_are_copied_from_test() {
function erlang_header_files_are_copied_from_dev (line 385) | fn erlang_header_files_are_copied_from_dev() {
function erlang_files_are_copied_from_src (line 404) | fn erlang_files_are_copied_from_src() {
function erlang_files_are_copied_from_test (line 423) | fn erlang_files_are_copied_from_test() {
function erlang_files_are_copied_from_dev (line 442) | fn erlang_files_are_copied_from_dev() {
function elixir_files_are_copied_from_src (line 461) | fn elixir_files_are_copied_from_src() {
function elixir_files_are_copied_from_test (line 480) | fn elixir_files_are_copied_from_test() {
function elixir_files_are_copied_from_dev (line 499) | fn elixir_files_are_copied_from_dev() {
function all_erlang_files_are_copied_from_src_subfolders (line 518) | fn all_erlang_files_are_copied_from_src_subfolders() {
function all_erlang_files_are_copied_from_test_subfolders (line 557) | fn all_erlang_files_are_copied_from_test_subfolders() {
function all_erlang_files_are_copied_from_dev_subfolders (line 597) | fn all_erlang_files_are_copied_from_dev_subfolders() {
function other_files_are_ignored (line 636) | fn other_files_are_ignored() {
function files_do_not_get_copied_if_there_already_is_a_new_version (line 652) | fn files_do_not_get_copied_if_there_already_is_a_new_version() {
function files_get_copied_if_the_previously_copied_version_is_older (line 676) | fn files_get_copied_if_the_previously_copied_version_is_older() {
function duplicate_native_files_result_in_an_error (line 700) | fn duplicate_native_files_result_in_an_error() {
function conflicting_erlang_modules_in_src_result_in_an_error (line 710) | fn conflicting_erlang_modules_in_src_result_in_an_error() {
function conflicting_erlang_modules_in_src_and_test_result_in_an_error (line 722) | fn conflicting_erlang_modules_in_src_and_test_result_in_an_error() {
function conflicting_erlang_modules_in_src_and_dev_result_in_an_error (line 734) | fn conflicting_erlang_modules_in_src_and_dev_result_in_an_error() {
function conflicting_erlang_modules_in_dev_and_test_result_in_an_error (line 746) | fn conflicting_erlang_modules_in_dev_and_test_result_in_an_error() {
function conflicting_gleam_and_javascript_modules_result_in_an_error (line 758) | fn conflicting_gleam_and_javascript_modules_result_in_an_error() {
function differently_nested_gleam_and_javascript_modules_with_same_name_are_ok (line 768) | fn differently_nested_gleam_and_javascript_modules_with_same_name_are_ok...
function conflicting_gleam_and_erlang_modules_result_in_an_error (line 780) | fn conflicting_gleam_and_erlang_modules_result_in_an_error() {
function conflicting_nested_gleam_and_erlang_modules_result_in_an_error (line 790) | fn conflicting_nested_gleam_and_erlang_modules_result_in_an_error() {
function conflicting_nested_gleam_file_does_not_conflict_with_root_erlang_file (line 802) | fn conflicting_nested_gleam_file_does_not_conflict_with_root_erlang_file...
function conflicting_gleam_and_erlang_modules_produce_no_error_in_dependency (line 813) | fn conflicting_gleam_and_erlang_modules_produce_no_error_in_dependency() {
FILE: compiler-core/src/build/package_compiler.rs
type Compiled (line 41) | pub struct Compiled {
type PackageCompiler (line 49) | pub struct PackageCompiler<'a, IO> {
function new (line 80) | pub fn new(
function compile (line 116) | pub fn compile(
function compile_erlang_to_beam (line 251) | fn compile_erlang_to_beam(
function copy_project_native_files (line 267) | fn copy_project_native_files(
function encode_and_write_metadata (line 305) | fn encode_and_write_metadata(&mut self, modules: &mut [Module]) -> Resul...
function perform_codegen (line 350) | fn perform_codegen(&mut self, modules: &[Module]) -> Result<()> {
function perform_erlang_codegen (line 371) | fn perform_erlang_codegen(
function perform_javascript_codegen (line 420) | fn perform_javascript_codegen(
function render_erlang_entrypoint_module (line 448) | fn render_erlang_entrypoint_module(
function emit_warnings (line 473) | fn emit_warnings(
function stdlib_package (line 490) | fn stdlib_package(&self) -> StdlibPackage {
type StdlibPackage (line 502) | pub enum StdlibPackage {
function analyse (line 507) | fn analyse(
type Input (line 643) | pub(crate) enum Input {
method name (line 649) | pub fn name(&self) -> &EcoString {
method source_path (line 656) | pub fn source_path(&self) -> &Utf8Path {
method dependencies (line 663) | pub fn dependencies(&self) -> Vec<EcoString> {
method is_new (line 674) | pub(crate) fn is_new(&self) -> bool {
method is_cached (line 682) | pub(crate) fn is_cached(&self) -> bool {
type CachedModule (line 688) | pub(crate) struct CachedModule {
type CacheMetadata (line 697) | pub(crate) struct CacheMetadata {
method to_binary (line 706) | pub fn to_binary(&self) -> Vec<u8> {
method from_binary (line 711) | pub fn from_binary(bytes: &[u8]) -> Result<Self, String> {
type Loaded (line 720) | pub(crate) struct Loaded {
method empty (line 726) | fn empty() -> Self {
type UncompiledModule (line 735) | pub(crate) struct UncompiledModule {
type ErlangEntrypointModule (line 749) | struct ErlangEntrypointModule<'a> {
type CachedWarnings (line 754) | pub enum CachedWarnings {
method should_use (line 759) | pub(crate) fn should_use(&self) -> bool {
type CheckModuleConflicts (line 768) | pub enum CheckModuleConflicts {
method should_check (line 773) | pub(crate) fn should_check(&self) -> bool {
FILE: compiler-core/src/build/package_compiler/tests.rs
function compile_modules (line 19) | fn compile_modules(
function different_packages_defining_duplicate_module (line 70) | pub fn different_packages_defining_duplicate_module() {
function same_package_defining_duplicate_module (line 80) | pub fn same_package_defining_duplicate_module() {
FILE: compiler-core/src/build/package_loader.rs
type CodegenRequired (line 41) | pub enum CodegenRequired {
method is_required (line 51) | pub fn is_required(&self) -> bool {
type PackageLoader (line 57) | pub struct PackageLoader<'a, IO> {
function new (line 77) | pub(crate) fn new(
function run (line 109) | pub(crate) fn run(mut self) -> Result<Loaded> {
function load_cached_module (line 184) | fn load_cached_module(&self, info: CachedModule) -> Result<type_::Module...
function read_sources_and_caches (line 207) | fn read_sources_and_caches(
function load_stale_module (line 284) | fn load_stale_module(&self, cached: CachedModule) -> Result<UncompiledMo...
function convert_deps_tree_error (line 306) | fn convert_deps_tree_error(
function ensure_gleam_module_does_not_overwrite_standard_erlang_module (line 366) | fn ensure_gleam_module_does_not_overwrite_standard_erlang_module(input: ...
type StaleTracker (line 1648) | pub struct StaleTracker(HashSet<EcoString>);
method add (line 1651) | fn add(&mut self, name: EcoString) {
method includes_any (line 1655) | fn includes_any(&self, names: &[(EcoString, SrcSpan)]) -> bool {
method empty (line 1659) | pub fn empty(&mut self) {
method is_empty (line 1663) | pub fn is_empty(&self) -> bool {
type Inputs (line 1669) | pub struct Inputs<'a> {
function new (line 1677) | fn new(
function insert (line 1690) | fn insert(&mut self, input: Input) -> Result<()> {
type GleamFile (line 1725) | pub struct GleamFile {
method new (line 1731) | pub fn new(dir: &Utf8Path, path: Utf8PathBuf) -> Self {
method iterate_files_in_directory (line 1743) | pub fn iterate_files_in_directory<'b>(
method cache_files (line 1757) | pub fn cache_files(&self, artefact_directory: &Utf8Path) -> CacheFiles {
method module_name (line 1761) | fn module_name(path: &Utf8Path, dir: &Utf8Path) -> EcoString {
method is_gleam_path (line 1780) | fn is_gleam_path(path: &Utf8Path, dir: &Utf8Path) -> bool {
type CacheFiles (line 1803) | pub struct CacheFiles {
method new (line 1809) | pub fn new(artefact_directory: &Utf8Path, module_name: &EcoString) -> ...
method delete (line 1824) | pub fn delete(&self, io: &dyn io::FileSystemWriter) -> Result<()> {
method modules_with_meta_files (line 1832) | pub fn modules_with_meta_files<'a>(
method module_name (line 1840) | fn module_name(dir: &Utf8Path, path: &Utf8Path) -> EcoString {
FILE: compiler-core/src/build/package_loader/tests.rs
type LoaderTestOutput (line 17) | struct LoaderTestOutput {
constant TEST_SOURCE_1 (line 23) | const TEST_SOURCE_1: &'static str = "const x = 1";
constant TEST_SOURCE_2 (line 24) | const TEST_SOURCE_2: &'static str = "const x = 2";
function write_src (line 26) | fn write_src(fs: &InMemoryFileSystem, path: &str, seconds: u64, src: &st...
function write_cache (line 32) | fn write_cache(
function run_loader (line 77) | fn run_loader(fs: InMemoryFileSystem, root: &Utf8Path, artefact: &Utf8Pa...
function no_modules (line 107) | fn no_modules() {
function one_src_module (line 118) | fn one_src_module() {
function one_test_module (line 131) | fn one_test_module() {
function one_dev_module (line 144) | fn one_dev_module() {
function importing (line 157) | fn importing() {
function reading_cache (line 179) | fn reading_cache() {
function module_is_stale_if_cache_older (line 193) | fn module_is_stale_if_cache_older() {
function module_is_stale_if_deps_are_stale (line 207) | fn module_is_stale_if_deps_are_stale() {
function module_is_stale_if_deps_removed (line 239) | fn module_is_stale_if_deps_removed() {
function module_continues_to_be_stale_if_deps_get_updated (line 262) | fn module_continues_to_be_stale_if_deps_get_updated() {
function invalid_module_name (line 299) | fn invalid_module_name() {
function invalid_nested_module_name (line 319) | fn invalid_nested_module_name() {
function invalid_module_name_in_test (line 339) | fn invalid_module_name_in_test() {
function invalid_nested_module_name_in_test (line 359) | fn invalid_nested_module_name_in_test() {
function invalid_module_name_in_dev (line 379) | fn invalid_module_name_in_dev() {
function invalid_nested_module_name_in_dev (line 399) | fn invalid_nested_module_name_in_dev() {
function cache_files_are_removed_when_source_removed (line 419) | fn cache_files_are_removed_when_source_removed() {
FILE: compiler-core/src/build/project_compiler.rs
constant REBAR_EXECUTABLE (line 49) | const REBAR_EXECUTABLE: &str = "rebar3";
constant REBAR_EXECUTABLE (line 51) | const REBAR_EXECUTABLE: &str = "rebar3.cmd";
constant ELIXIR_EXECUTABLE (line 54) | const ELIXIR_EXECUTABLE: &str = "elixir";
constant ELIXIR_EXECUTABLE (line 56) | const ELIXIR_EXECUTABLE: &str = "elixir.bat";
type Options (line 59) | pub struct Options {
type Built (line 70) | pub struct Built {
method get_main_function (line 77) | pub fn get_main_function(
method minimum_required_version (line 91) | pub fn minimum_required_version(&self) -> Version {
type ProjectCompiler (line 102) | pub struct ProjectCompiler<IO> {
function new (line 130) | pub fn new(
function mode (line 161) | pub fn mode(&self) -> Mode {
function target (line 165) | pub fn target(&self) -> Target {
function reset_state_for_new_compile_run (line 169) | pub fn reset_state_for_new_compile_run(&mut self) {
function retain_only_production_packages (line 183) | fn retain_only_production_packages(&mut self) {
function compile (line 199) | pub fn compile(mut self) -> Result<Built> {
function compile_root_package (line 238) | pub fn compile_root_package(&mut self) -> Outcome<Package, Error> {
function check_gleam_version (line 257) | pub fn check_gleam_version(&self) -> Result<(), Error> {
function compile_dependencies (line 285) | pub fn compile_dependencies(&mut self) -> Result<Vec<Module>, Error> {
function write_prelude (line 302) | fn write_prelude(&self) -> Result<()> {
function load_cache_or_compile_package (line 329) | fn load_cache_or_compile_package(&mut self, name: &str) -> Result<Vec<Mo...
function compile_rebar3_dep_package (line 365) | fn compile_rebar3_dep_package(&mut self, package: &ManifestPackage) -> R...
function compile_mix_dep_package (line 440) | fn compile_mix_dep_package(&mut self, package: &ManifestPackage) -> Resu...
function compile_gleam_dep_package (line 539) | fn compile_gleam_dep_package(
function compile_gleam_package (line 569) | fn compile_gleam_package(
function get_importable_modules (line 661) | pub fn get_importable_modules(&self) -> &im::HashMap<EcoString, type_::M...
function order_packages (line 666) | fn order_packages(packages: &HashMap<String, ManifestPackage>) -> Result...
function convert_deps_tree_error (line 690) | fn convert_deps_tree_error(e: dep_tree::Error) -> Error {
type BuildTool (line 697) | pub(crate) enum BuildTool {
function usable_build_tools (line 704) | pub(crate) fn usable_build_tools(package: &ManifestPackage) -> Result<Ve...
FILE: compiler-core/src/build/telemetry.rs
type Telemetry (line 11) | pub trait Telemetry: Debug {
method waiting_for_build_directory_lock (line 12) | fn waiting_for_build_directory_lock(&self);
method running (line 13) | fn running(&self, name: &str);
method resolving_package_versions (line 14) | fn resolving_package_versions(&self);
method resolved_package_versions (line 15) | fn resolved_package_versions(&self, changes: &PackageChanges);
method downloading_package (line 16) | fn downloading_package(&self, name: &str);
method packages_downloaded (line 17) | fn packages_downloaded(&self, start: Instant, count: usize);
method compiled_package (line 18) | fn compiled_package(&self, duration: Duration);
method compiling_package (line 19) | fn compiling_package(&self, name: &str);
method checked_package (line 20) | fn checked_package(&self, duration: Duration);
method checking_package (line 21) | fn checking_package(&self, name: &str);
method waiting_for_build_directory_lock (line 28) | fn waiting_for_build_directory_lock(&self) {}
method running (line 29) | fn running(&self, name: &str) {}
method resolving_package_versions (line 30) | fn resolving_package_versions(&self) {}
method downloading_package (line 31) | fn downloading_package(&self, _name: &str) {}
method compiled_package (line 32) | fn compiled_package(&self, _duration: Duration) {}
method compiling_package (line 33) | fn compiling_package(&self, _name: &str) {}
method checked_package (line 34) | fn checked_package(&self, _duration: Duration) {}
method checking_package (line 35) | fn checking_package(&self, _name: &str) {}
method packages_downloaded (line 36) | fn packages_downloaded(&self, _start: Instant, _count: usize) {}
method resolved_package_versions (line 37) | fn resolved_package_versions(&self, _changes: &PackageChanges) {}
type NullTelemetry (line 25) | pub struct NullTelemetry;
FILE: compiler-core/src/build/tests.rs
function usable_build_tool_unknown (line 6) | fn usable_build_tool_unknown() {
function usable_build_tool_none (line 17) | fn usable_build_tool_none() {
function usable_build_tool_only_mix (line 28) | fn usable_build_tool_only_mix() {
function usable_build_tool_only_rebar3 (line 36) | fn usable_build_tool_only_rebar3() {
function usable_build_tool_only_gleam (line 44) | fn usable_build_tool_only_gleam() {
function usable_build_tool_mix_then_rebar3 (line 52) | fn usable_build_tool_mix_then_rebar3() {
FILE: compiler-core/src/call_graph.rs
type CallGraphBuilder (line 21) | struct CallGraphBuilder<'a> {
type CallGraphNode (line 28) | pub enum CallGraphNode {
function into_graph (line 35) | fn into_graph(self) -> StableGraph<(), (), Directed> {
function register_module_function_existence (line 41) | fn register_module_function_existence(
function register_module_const_existence (line 66) | fn register_module_const_existence(
function register_references_constant (line 86) | fn register_references_constant(&mut self, constant: &'a UntypedModuleCo...
function register_references (line 96) | fn register_references(&mut self, function: &'a UntypedFunction) {
function referenced (line 124) | fn referenced(&mut self, name: &str) {
function statements (line 139) | fn statements(&mut self, statements: &'a [UntypedStatement]) {
function statement (line 147) | fn statement(&mut self, statement: &'a UntypedStatement) {
function expression (line 180) | fn expression(&mut self, expression: &'a UntypedExpr) {
function pattern (line 324) | fn pattern(&mut self, pattern: &'a UntypedPattern) {
function bit_array_size (line 387) | fn bit_array_size(&mut self, size: &'a BitArraySize<()>) {
function define (line 399) | fn define(&mut self, name: &'a str) {
function bit_array_option (line 403) | fn bit_array_option<T>(
function guard (line 432) | fn guard(&mut self, guard: &'a UntypedClauseGuard) {
function constant (line 455) | fn constant(&mut self, constant: &'a Constant<(), ()>) {
function into_dependency_order (line 511) | pub fn into_dependency_order(
FILE: compiler-core/src/call_graph/into_dependency_order_tests.rs
type FuncInput (line 11) | type FuncInput = (&'static str, &'static [&'static str], &'static str);
type ConstInput (line 12) | type ConstInput = (&'static str, &'static str);
function parse_and_order (line 14) | fn parse_and_order(
function empty (line 97) | fn empty() {
function no_deps (line 106) | fn no_deps() {
function one_dep (line 121) | fn one_dep() {
function unknown_vars (line 134) | fn unknown_vars() {
function calling_function (line 147) | fn calling_function() {
function ref_in_call_argument (line 160) | fn ref_in_call_argument() {
function sequence (line 173) | fn sequence() {
function tuple (line 186) | fn tuple() {
function pipeline (line 199) | fn pipeline() {
function list (line 212) | fn list() {
function list_spread (line 225) | fn list_spread() {
function record_access (line 238) | fn record_access() {
function binop (line 251) | fn binop() {
function bit_arrays (line 264) | fn bit_arrays() {
function tuple_index (line 277) | fn tuple_index() {
function record_update (line 290) | fn record_update() {
function negate (line 303) | fn negate() {
function use_ (line 316) | fn use_() {
function use_shadowing (line 329) | fn use_shadowing() {
function fn_argument_shadowing (line 342) | fn fn_argument_shadowing() {
function fn_argument_shadowing_then_not (line 355) | fn fn_argument_shadowing_then_not() {
function let_var (line 368) | fn let_var() {
function pattern_int (line 381) | fn pattern_int() {
function pattern_float (line 390) | fn pattern_float() {
function pattern_string (line 399) | fn pattern_string() {
function pattern_underscore (line 408) | fn pattern_underscore() {
function pattern_concat (line 417) | fn pattern_concat() {
function pattern_tuple (line 430) | fn pattern_tuple() {
function pattern_list (line 443) | fn pattern_list() {
function pattern_list_spread (line 456) | fn pattern_list_spread() {
function pattern_bit_array_segment_size_var_usage (line 469) | fn pattern_bit_array_segment_size_var_usage() {
function pattern_assign (line 486) | fn pattern_assign() {
function pattern_constructor (line 499) | fn pattern_constructor() {
function scope_reset (line 512) | fn scope_reset() {
function case_subject (line 525) | fn case_subject() {
function case_subjects (line 538) | fn case_subjects() {
function case_pattern_shadow (line 551) | fn case_pattern_shadow() {
function case_use_in_clause (line 564) | fn case_use_in_clause() {
function case_clause_doesnt_shadow_later_clauses (line 577) | fn case_clause_doesnt_shadow_later_clauses() {
function case_clause_doesnt_shadow_after (line 590) | fn case_clause_doesnt_shadow_after() {
function guard (line 603) | fn guard() {
function big_guard (line 616) | fn big_guard() {
function duplicate_external_function_name (line 633) | fn duplicate_external_function_name() {
function duplicate_function_name (line 639) | fn duplicate_function_name() {
function more_complex_cycle (line 648) | fn more_complex_cycle() {
function function_argument_shadowing (line 661) | fn function_argument_shadowing() {
function constants_and_functions (line 673) | fn constants_and_functions() {
function bug_2275 (line 687) | fn bug_2275() {
function let_assert_message (line 699) | fn let_assert_message() {
function assert_subject (line 711) | fn assert_subject() {
function assert_message (line 723) | fn assert_message() {
FILE: compiler-core/src/codegen.rs
type Erlang (line 22) | pub struct Erlang<'a> {
function new (line 28) | pub fn new(build_directory: &'a Utf8Path, include_directory: &'a Utf8Pat...
function render (line 35) | pub fn render<Writer: FileSystemWriter>(
function erlang_module (line 49) | fn erlang_module<Writer: FileSystemWriter>(
function erlang_record_headers (line 64) | fn erlang_record_headers<Writer: FileSystemWriter>(
type ErlangApp (line 81) | pub struct ErlangApp<'a> {
function new (line 87) | pub fn new(output_directory: &'a Utf8Path, config: &'a ErlangAppCodegenC...
function render (line 94) | pub fn render<Writer: FileSystemWriter>(
type TypeScriptDeclarations (line 167) | pub enum TypeScriptDeclarations {
type JavaScript (line 173) | pub struct JavaScript<'a> {
function new (line 181) | pub fn new(
function render (line 195) | pub fn render(
function write_prelude (line 212) | fn write_prelude(&self, writer: &impl FileSystemWriter) -> Result<()> {
function ts_declaration (line 239) | fn ts_declaration(
function js_module (line 252) | fn js_module(
FILE: compiler-core/src/config.rs
function default_version (line 25) | fn default_version() -> Version {
function erlang_target (line 29) | fn erlang_target() -> Target {
function default_javascript_runtime (line 33) | fn default_javascript_runtime() -> Runtime {
type Dependencies (line 37) | pub type Dependencies = HashMap<EcoString, Requirement>;
type SpdxLicense (line 40) | pub struct SpdxLicense {
method deserialize (line 51) | fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
method as_ref (line 93) | fn as_ref(&self) -> &str {
method to_string (line 45) | fn to_string(&self) -> String {
type SpdxLicenseVisitor (line 59) | struct SpdxLicenseVisitor;
type Value (line 62) | type Value = SpdxLicense;
method expecting (line 64) | fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
method visit_str (line 68) | fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
method serialize (line 84) | fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
type GleamVersion (line 99) | pub struct GleamVersion(version::Range);
method from (line 101) | fn from(range: version::Range) -> Self {
method from_pubgrub (line 119) | pub fn from_pubgrub(range: pubgrub::Range<Version>) -> Self {
method as_pubgrub (line 124) | pub fn as_pubgrub(&self) -> &pubgrub::Range<Version> {
method new (line 128) | pub fn new(spec: String) -> Result<GleamVersion> {
method lowest_version (line 137) | pub fn lowest_version(&self) -> Option<Version> {
method hex (line 141) | pub fn hex(&self) -> &version::Range {
function from (line 107) | fn from(gleam_version: GleamVersion) -> Self {
function from (line 113) | fn from(gleam_version: GleamVersion) -> Self {
type PackageConfig (line 147) | pub struct PackageConfig {
method dependencies_for (line 211) | pub fn dependencies_for(&self, mode: Mode) -> Result<Dependencies> {
method all_direct_dependencies (line 220) | pub fn all_direct_dependencies(&self) -> Result<Dependencies> {
method read (line 232) | pub fn read<FS: FileSystemReader, P: AsRef<Utf8Path>>(
method locked (line 251) | pub fn locked(&self, manifest: Option<&Manifest>) -> Result<HashMap<Ec...
method is_internal_module (line 269) | pub fn is_internal_module(&self, module: &str) -> bool {
method check_gleam_compatibility (line 292) | pub fn check_gleam_compatibility(&self) -> Result<(), Error> {
method tag_for_version (line 313) | pub fn tag_for_version(&self, version: &Version) -> String {
function serialise_gleam_version (line 184) | pub fn serialise_gleam_version<S>(
function deserialise_gleam_version (line 197) | pub fn deserialise_gleam_version<'de, D>(deserialiser: D) -> Result<Opti...
function deserialise_config (line 336) | fn deserialise_config<P: AsRef<Utf8Path>>(
function deny_extra_deps_properties (line 351) | fn deny_extra_deps_properties() {
function locked_no_manifest (line 366) | fn locked_no_manifest() {
function locked_no_changes (line 382) | fn locked_no_changes() {
function locked_some_removed (line 416) | fn locked_some_removed() {
function locked_some_changed (line 442) | fn locked_some_changed() {
function locked_nested_are_removed_too (line 482) | fn locked_nested_are_removed_too() {
function locked_unlock_new (line 533) | fn locked_unlock_new() {
function default_internal_modules (line 561) | fn default_internal_modules() {
function no_internal_modules (line 578) | fn no_internal_modules() {
function hidden_a_directory_from_docs (line 595) | fn hidden_a_directory_from_docs() {
function hidden_two_directories_from_docs (line 607) | fn hidden_two_directories_from_docs() {
function hidden_a_directory_and_a_file_from_docs (line 626) | fn hidden_a_directory_and_a_file_from_docs() {
function hidden_a_file_in_all_directories_from_docs (line 645) | fn hidden_a_file_in_all_directories_from_docs() {
function manifest_package (line 661) | fn manifest_package(
function locked_version (line 684) | fn locked_version(name: &'static str, version: &'static str) -> (EcoStri...
method default (line 689) | fn default() -> Self {
type ErlangConfig (line 710) | pub struct ErlangConfig {
type JavaScriptConfig (line 726) | pub struct JavaScriptConfig {
type DenoFlag (line 736) | pub enum DenoFlag {
method default (line 742) | fn default() -> Self {
method serialize (line 748) | fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
function bool_or_seq_string_to_deno_flag (line 765) | fn bool_or_seq_string_to_deno_flag<'de, D>(deserializer: D) -> Result<De...
type DenoConfig (line 805) | pub struct DenoConfig {
type Repository (line 836) | pub enum Repository {
method url (line 920) | pub fn url(&self) -> String {
method path (line 954) | pub fn path(&self) -> Option<&String> {
type Docs (line 971) | pub struct Docs {
type DocsPage (line 977) | pub struct DocsPage {
type Link (line 984) | pub struct Link {
function deserialize (line 995) | pub fn deserialize<'de, D>(deserializer: D) -> Result<http::Uri, D::Error>
function deserialize_option (line 1009) | pub fn deserialize_option<'de, D>(deserializer: D) -> Result<Option<http...
function serialize_option (line 1023) | pub fn serialize_option<S>(uri: &Option<http::Uri>, serializer: S) -> Re...
function serialize (line 1033) | pub fn serialize<S>(uri: &http::Uri, serializer: S) -> Result<S::Ok, S::...
function deserialize (line 1046) | pub fn deserialize<'de, D>(deserializer: D) -> Result<http::Uri, D::Error>
function deserialize (line 1074) | pub fn deserialize<'de, D>(deserializer: D) -> Result<EcoString, D::Error>
type NameVisitor (line 1081) | struct NameVisitor;
type Value (line 1084) | type Value = EcoString;
method expecting (line 1086) | fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
method visit_str (line 1090) | fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
function name_with_dash (line 1109) | fn name_with_dash() {
function name_with_number_start (line 1123) | fn name_with_number_start() {
function package_config_to_json (line 1136) | fn package_config_to_json() {
function barebones_package_config_to_json (line 1184) | fn barebones_package_config_to_json() {
function dev_deps_field_name (line 1197) | fn dev_deps_field_name() {
FILE: compiler-core/src/config/stale_package_remover.rs
type StalePackageRemover (line 8) | pub struct StalePackageRemover<'a> {
function fresh_and_locked (line 16) | pub fn fresh_and_locked(
function run (line 32) | fn run(
function record_tree_fresh (line 66) | fn record_tree_fresh(&mut self, name: &'a str) {
function optional_package_not_in_manifest (line 94) | fn optional_package_not_in_manifest() {
FILE: compiler-core/src/dep_tree.rs
function toposort_deps (line 16) | pub fn toposort_deps(inputs: Vec<(EcoString, Vec<EcoString>)>) -> Result...
function import_cycle (line 45) | fn import_cycle(
function find_cycle (line 62) | fn find_cycle(
type Error (line 87) | pub enum Error {
function toposort_deps_test (line 96) | fn toposort_deps_test() {
function cycle_detection (line 127) | fn cycle_detection() {
FILE: compiler-core/src/dependency.rs
type PackageVersions (line 13) | pub type PackageVersions = HashMap<String, Version>;
type PubgrubRange (line 15) | type PubgrubRange = pubgrub::Range<Version>;
function resolve_versions (line 17) | pub fn resolve_versions<Requirements>(
type PackageVersionDiffs (line 66) | pub type PackageVersionDiffs = HashMap<String, (Version, Version)>;
function resolve_versions_diffs (line 68) | fn resolve_versions_diffs(
function check_for_major_version_updates (line 110) | pub fn check_for_major_version_updates(
function check_for_version_updates (line 131) | pub fn check_for_version_updates(
function parse_exact_version (line 151) | fn parse_exact_version(ver: &str) -> Option<Version> {
function root_dependencies (line 165) | fn root_dependencies<Requirements>(
type PackageFetcher (line 223) | pub trait PackageFetcher {
method get_dependencies (line 224) | fn get_dependencies(&self, package: &str) -> Result<Rc<hexpm::Package>...
method get_dependencies (line 471) | fn get_dependencies(&self, package: &str) -> Result<Rc<hexpm::Package>...
type PackageFetchError (line 228) | pub enum PackageFetchError {
method fetch_error (line 237) | pub fn fetch_error<T: std::error::Error>(err: T) -> Self {
method from_api_error (line 241) | pub fn from_api_error(api_error: hexpm::ApiError, package: &str) -> Se...
type DependencyProvider (line 269) | pub struct DependencyProvider<'a, T: PackageFetcher> {
function new (line 284) | fn new(
function ensure_package_fetched (line 308) | fn ensure_package_fetched(
type PackageName (line 334) | type PackageName = String;
type ResolutionError (line 335) | pub type ResolutionError<'a, T> = pubgrub::PubGrubError<DependencyProvid...
function get_dependencies (line 341) | fn get_dependencies(
function prioritize (line 394) | fn prioritize(
function choose_version (line 415) | fn choose_version(
type P (line 446) | type P = PackageName;
type V (line 447) | type V = Version;
type VS (line 448) | type VS = PubgrubRange;
type Priority (line 449) | type Priority = Reverse<usize>;
type M (line 450) | type M = String;
type Err (line 451) | type Err = PackageFetchError;
type Remote (line 466) | struct Remote {
function make_remote (line 479) | fn make_remote() -> Remote {
function resolution_with_locked (line 553) | fn resolution_with_locked() {
function resolution_without_deps (line 572) | fn resolution_without_deps() {
function resolution_1_dep (line 585) | fn resolution_1_dep() {
function resolution_with_nested_deps (line 603) | fn resolution_with_nested_deps() {
function resolution_with_optional_deps (line 624) | fn resolution_with_optional_deps() {
function resolution_with_optional_deps_explicitly_provided (line 649) | fn resolution_with_optional_deps_explicitly_provided() {
function resolution_with_optional_deps_incompatible (line 680) | fn resolution_with_optional_deps_incompatible() {
function resolution_with_optional_deps_required_by_nested_deps (line 699) | fn resolution_with_optional_deps_required_by_nested_deps() {
function resolution_with_optional_deps_keep_constraints (line 731) | fn resolution_with_optional_deps_keep_constraints() {}
function resolution_locked_to_older_version (line 734) | fn resolution_locked_to_older_version() {
function resolution_retired_versions_not_used_by_default (line 755) | fn resolution_retired_versions_not_used_by_default() {
function resolution_retired_versions_can_be_used_if_locked (line 781) | fn resolution_retired_versions_can_be_used_if_locked() {
function resolution_prerelease_can_be_selected (line 809) | fn resolution_prerelease_can_be_selected() {
function resolution_exact_prerelease_can_be_selected (line 834) | fn resolution_exact_prerelease_can_be_selected() {
function resolution_not_found_dep (line 855) | fn resolution_not_found_dep() {
function resolution_no_matching_version (line 874) | fn resolution_no_matching_version() {
function resolution_locked_version_doesnt_satisfy_requirements (line 886) | fn resolution_locked_version_doesnt_satisfy_requirements() {
function resolution_with_exact_dep (line 912) | fn resolution_with_exact_dep() {
function parse_exact_version_test (line 930) | fn parse_exact_version_test() {
function resolve_major_version_upgrades (line 948) | fn resolve_major_version_upgrades() {
function retired_release (line 1033) | fn retired_release(
function release (line 1047) | fn release(version: &str, requirements: Vec<(&str, &str)>) -> Release<()> {
function release_with_optional (line 1051) | fn release_with_optional(
function remote (line 1089) | fn remote(dependencies: Vec<(&str, Vec<Release<()>>)>) -> Remote {
function resolution_error_message (line 1105) | fn resolution_error_message() {
FILE: compiler-core/src/derivation_tree.rs
type DerivationTreePrinter (line 26) | pub struct DerivationTreePrinter {
method new (line 52) | pub fn new(
method print (line 73) | pub fn print(&self) -> String {
method pretty_explanation (line 82) | fn pretty_explanation(&self) -> Option<String> {
method pretty_path (line 111) | fn pretty_path(&self, path: Vec<NodeIndex>) -> String {
method find_unresolvable_nodes (line 153) | fn find_unresolvable_nodes(&self) -> Vec<NodeIndex> {
method ranges_between (line 166) | fn ranges_between(
method fallback_explanation (line 179) | fn fallback_explanation(&self) -> String {
function build_dependencies_graph (line 198) | fn build_dependencies_graph(
function simplify_derivation_tree (line 269) | fn simplify_derivation_tree(derivation_tree: &mut DerivationTree<String,...
function simplify_derivation_tree_outer (line 280) | fn simplify_derivation_tree_outer(
function collect_conflicting_packages (line 318) | fn collect_conflicting_packages<'dt>(
function pretty_range (line 341) | fn pretty_range(range: &Ranges<Version>) -> String {
FILE: compiler-core/src/diagnostic.rs
type Level (line 13) | pub enum Level {
type Label (line 19) | pub struct Label {
method to_codespan_label (line 25) | fn to_codespan_label(&self, fileid: usize, style: LabelStyle) -> Codes...
type ExtraLabel (line 39) | pub struct ExtraLabel {
type Location (line 45) | pub struct Location {
type Diagnostic (line 54) | pub struct Diagnostic {
method write (line 63) | pub fn write(&self, buffer: &mut Buffer) {
method write_span (line 79) | fn write_span(&self, location: &Location, buffer: &mut Buffer) {
method write_title (line 128) | fn write_title(&self, buffer: &mut Buffer) {
FILE: compiler-core/src/docs.rs
type DocContext (line 29) | pub enum DocContext {
type PackageInformation (line 35) | pub struct PackageInformation {
type Dependency (line 43) | pub struct Dependency {
type DependencyKind (line 49) | pub enum DependencyKind {
type DocumentationConfig (line 56) | pub struct DocumentationConfig<'a> {
function generate_html (line 65) | pub fn generate_html<IO: FileSystemReader>(
function search_item_for_page (line 421) | fn search_item_for_page(package: &str, path: &str, content: String) -> S...
function search_item_for_type (line 431) | fn search_item_for_type(module: &str, type_: &TypeDefinition<'_>) -> Sea...
function search_item_for_value (line 464) | fn search_item_for_value(module: &str, value: &DocsValues<'_>) -> Search...
function search_item_for_module (line 479) | fn search_item_for_module(module: &Module) -> SearchItem {
function generate_json_package_interface (line 489) | pub fn generate_json_package_interface(
function generate_json_package_information (line 503) | pub fn generate_json_package_information(path: Utf8PathBuf, config: Pack...
function package_information_as_json (line 510) | fn package_information_as_json(config: PackageConfig) -> String {
function page_unnest (line 517) | fn page_unnest(path: &str) -> String {
function page_unnest_test (line 533) | fn page_unnest_test() {
function import_synonyms (line 546) | fn import_synonyms(parent: &str, child: &str) -> String {
function text_documentation (line 550) | fn text_documentation(doc: &Option<(u32, EcoString)>) -> String {
function markdown_documentation (line 560) | fn markdown_documentation(doc: &Option<(u32, EcoString)>) -> String {
type MarkdownSource (line 567) | enum MarkdownSource {
function render_markdown (line 576) | fn render_markdown(text: &str, source: MarkdownSource) -> String {
type Link (line 594) | struct Link {
type TypeConstructor (line 600) | struct TypeConstructor {
type TypeConstructorArg (line 609) | struct TypeConstructorArg {
type TypeDefinition (line 616) | struct TypeDefinition<'a> {
type DocsValues (line 629) | struct DocsValues<'a> {
type PageTemplate (line 641) | struct PageTemplate<'a> {
type ModuleTemplate (line 659) | struct ModuleTemplate<'a> {
type SearchData (line 681) | struct SearchData {
type SearchItem (line 689) | struct SearchItem {
type SearchItemType (line 710) | enum SearchItemType {
type SearchProgrammingLanguage (line 719) | enum SearchProgrammingLanguage {
function package_config_to_json (line 726) | fn package_config_to_json() {
function barebones_package_config_to_json (line 777) | fn barebones_package_config_to_json() {
FILE: compiler-core/src/docs/printer.rs
type PrintOptions (line 28) | pub struct PrintOptions {
method all (line 34) | pub fn all() -> Self {
type Printer (line 42) | pub struct Printer<'a> {
function new (line 63) | pub fn new<'a>(
function set_options (line 84) | pub fn set_options(&mut self, options: PrintOptions) {
function type_definitions (line 88) | pub fn type_definitions<'a>(
function raw (line 186) | fn raw<'a, F>(&mut self, definition: F) -> String
function value_definitions (line 202) | pub fn value_definitions<'a>(
function custom_type (line 278) | fn custom_type<'a>(
function record_constructor (line 319) | pub fn record_constructor<'a>(
function type_alias (line 342) | fn type_alias<'a>(
function constant (line 368) | fn constant<'a>(&mut self, name: &'a str, type_: &Type) -> Document<'a> {
function function_signature (line 379) | fn function_signature<'a>(
function argument_name (line 409) | fn argument_name<'a>(&self, arg: &'a TypedArg) -> Document<'a> {
function wrap_arguments (line 425) | fn wrap_arguments<'a>(arguments: impl IntoIterator<Item = Document<'a>>)...
function type_arguments (line 433) | fn type_arguments<'a>(arguments: impl IntoIterator<Item = Document<'a>>)...
function type_ (line 442) | fn type_(&mut self, type_: &Type, print_mode: PrintMode) -> Document<'st...
function type_variable (line 517) | fn type_variable(&mut self, id: u64) -> EcoString {
function next_letter (line 537) | fn next_letter(&mut self) -> EcoString {
function named_type_name (line 559) | fn named_type_name(
function register_local_type_variable_names (line 673) | fn register_local_type_variable_names(&mut self, type_: &Type) {
function keyword (line 702) | fn keyword<'a>(&self, keyword: impl Documentable<'a>) -> Document<'a> {
function comment (line 706) | fn comment<'a>(&self, name: impl Documentable<'a>) -> Document<'a> {
function title (line 710) | fn title<'a>(&self, name: impl Documentable<'a>) -> Document<'a> {
function variable (line 714) | fn variable<'a>(&self, name: impl Documentable<'a>) -> Document<'a> {
function colour_span (line 718) | fn colour_span<'a>(
function link (line 733) | fn link<'a>(
function span_with_title (line 755) | fn span_with_title<'a>(&self, name: impl Documentable<'a>, title: EcoStr...
constant MAX_COLUMNS (line 767) | const MAX_COLUMNS: isize = 65;
constant INDENT (line 768) | const INDENT: isize = 2;
function print (line 770) | fn print(doc: Document<'_>) -> String {
FILE: compiler-core/src/docs/source_links.rs
type SourceLinker (line 11) | pub struct SourceLinker {
method new (line 17) | pub fn new(
method url (line 93) | pub fn url(&self, span: SrcSpan) -> String {
function to_url_path (line 110) | fn to_url_path(path: &Utf8Path) -> Option<String> {
FILE: compiler-core/src/docs/tests.rs
type CompileWithMarkdownPagesOpts (line 34) | struct CompileWithMarkdownPagesOpts {
function compile_with_markdown_pages (line 38) | fn compile_with_markdown_pages(
function compile (line 135) | pub fn compile(config: PackageConfig, modules: Vec<(&str, &str)>) -> Eco...
function compile_documentation (line 144) | fn compile_documentation(
function hello_docs (line 342) | fn hello_docs() {
function ignored_argument_is_called_arg (line 358) | fn ignored_argument_is_called_arg() {
function tables (line 367) | fn tables() {
function long_function_wrapping (line 388) | fn long_function_wrapping() {
function internal_definitions_are_not_included (line 415) | fn internal_definitions_are_not_included() {
function discarded_arguments_are_not_shown (line 439) | fn discarded_arguments_are_not_shown() {
function docs_of_a_type_constructor_are_not_used_by_the_following_function (line 448) | fn docs_of_a_type_constructor_are_not_used_by_the_following_function() {
function markdown_code_from_standalone_pages_is_not_trimmed (line 468) | fn markdown_code_from_standalone_pages_is_not_trimmed() {
function markdown_code_from_function_comment_is_trimmed (line 490) | fn markdown_code_from_function_comment_is_trimmed() {
function markdown_code_from_module_comment_is_trimmed (line 511) | fn markdown_code_from_module_comment_is_trimmed() {
function doc_for_commented_definitions_is_not_included_in_next_constant (line 529) | fn doc_for_commented_definitions_is_not_included_in_next_constant() {
function doc_for_commented_definitions_is_not_included_in_next_type (line 546) | fn doc_for_commented_definitions_is_not_included_in_next_type() {
function doc_for_commented_definitions_is_not_included_in_next_function (line 566) | fn doc_for_commented_definitions_is_not_included_in_next_function() {
function doc_for_commented_definitions_is_not_included_in_next_type_alias (line 583) | fn doc_for_commented_definitions_is_not_included_in_next_type_alias() {
function source_link_for_github_repository (line 600) | fn source_link_for_github_repository() {
function source_link_for_github_repository_with_path_and_tag_prefix (line 618) | fn source_link_for_github_repository_with_path_and_tag_prefix() {
function canonical_link (line 635) | fn canonical_link() {
function no_hex_publish (line 674) | fn no_hex_publish() {
function create_sample_search_data (line 714) | fn create_sample_search_data() -> SearchData {
function ensure_search_data_matches_exdocs_search_data_model_specification (line 751) | fn ensure_search_data_matches_exdocs_search_data_model_specification() {
function output_of_search_data_json (line 776) | fn output_of_search_data_json() {
constant ONLY_LINKS (line 782) | const ONLY_LINKS: PrintOptions = PrintOptions {
constant NONE (line 786) | const NONE: PrintOptions = PrintOptions {
function highlight_function_definition (line 792) | fn highlight_function_definition() {
function highlight_constant_definition (line 801) | fn highlight_constant_definition() {
function highlight_type_alias (line 810) | fn highlight_type_alias() {
function highlight_custom_type (line 819) | fn highlight_custom_type() {
function highlight_opaque_custom_type (line 831) | fn highlight_opaque_custom_type() {
function print_type_variables_in_function_signatures (line 844) | fn print_type_variables_in_function_signatures() {
function print_qualified_names_from_other_modules (line 859) | fn print_qualified_names_from_other_modules() {
function link_to_type_in_same_module (line 886) | fn link_to_type_in_same_module() {
function link_to_type_in_different_module (line 899) | fn link_to_type_in_different_module() {
function link_to_type_in_different_module_from_nested_module (line 912) | fn link_to_type_in_different_module_from_nested_module() {
function link_to_type_in_different_module_from_nested_module_with_shared_path (line 926) | fn link_to_type_in_different_module_from_nested_module_with_shared_path() {
function link_to_type_in_different_package (line 941) | fn link_to_type_in_different_package() {
function no_link_to_type_in_git_dependency (line 954) | fn no_link_to_type_in_git_dependency() {
function no_link_to_type_in_path_dependency (line 967) | fn no_link_to_type_in_path_dependency() {
function no_links_to_prelude_types (line 980) | fn no_links_to_prelude_types() {
function generated_type_variables (line 990) | fn generated_type_variables() {
function generated_type_variables_mixed_with_existing_variables (line 1002) | fn generated_type_variables_mixed_with_existing_variables() {
function generated_type_variables_with_existing_variables_coming_afterwards (line 1014) | fn generated_type_variables_with_existing_variables_coming_afterwards() {
function generated_type_variables_do_not_take_into_account_other_definitions (line 1026) | fn generated_type_variables_do_not_take_into_account_other_definitions() {
function internal_type_reexport_in_same_module_as_parameter (line 1040) | fn internal_type_reexport_in_same_module_as_parameter() {
function internal_type_reexport_in_same_module_as_parameter_colours (line 1054) | fn internal_type_reexport_in_same_module_as_parameter_colours() {
function internal_type_reexport_in_same_module (line 1067) | fn internal_type_reexport_in_same_module() {
function internal_type_reexport_in_different_module (line 1081) | fn internal_type_reexport_in_different_module() {
function public_type_reexport_in_different_internal_module (line 1095) | fn public_type_reexport_in_different_internal_module() {
function use_reexport_from_other_package (line 1109) | fn use_reexport_from_other_package() {
function function_uses_reexport_of_internal_type (line 1132) | fn function_uses_reexport_of_internal_type() {
function function_uses_reexport_of_internal_type_in_other_module (line 1149) | fn function_uses_reexport_of_internal_type_in_other_module() {
function constructor_with_long_types_and_many_fields (line 1172) | fn constructor_with_long_types_and_many_fields() {
function constructor_with_long_types_and_many_fields_that_need_splitting (line 1195) | fn constructor_with_long_types_and_many_fields_that_need_splitting() {
function gitea_repository_url_has_no_double_slash (line 1215) | fn gitea_repository_url_has_no_double_slash() {
function long_function_with_no_arguments_parentheses_are_not_split (line 1228) | fn long_function_with_no_arguments_parentheses_are_not_split() {
function forgejo_single_line_definition (line 1240) | fn forgejo_single_line_definition() {
function forgejo_multiple_line_definition (line 1262) | fn forgejo_multiple_line_definition() {
function generate_search_data (line 1283) | fn generate_search_data(module_name: &str, module_src: &str) -> EcoString {
function search_item_for_custom_type (line 1365) | fn search_item_for_custom_type() {
function search_item_for_type_alias (line 1388) | fn search_item_for_type_alias() {
function search_item_for_function (line 1405) | fn search_item_for_function() {
function search_item_for_constant (line 1418) | fn search_item_for_constant() {
FILE: compiler-core/src/encryption.rs
function encrypt_with_passphrase (line 3) | pub fn encrypt_with_passphrase(
type DecryptError (line 19) | pub enum DecryptError {
function decrypt_with_passphrase (line 26) | pub fn decrypt_with_passphrase(
FILE: compiler-core/src/erlang.rs
constant INDENT (line 33) | const INDENT: isize = 4;
constant MAX_COLUMNS (line 34) | const MAX_COLUMNS: isize = 80;
function module_name_atom (line 36) | fn module_name_atom(module: &str) -> Document<'static> {
type Env (line 41) | struct Env<'a> {
function new (line 52) | pub fn new(module: &'env str, function: &'env str, line_numbers: &'env L...
function local_var_name (line 65) | pub fn local_var_name<'a>(&mut self, name: &str) -> Document<'a> {
function next_local_var_name (line 82) | pub fn next_local_var_name<'a>(&mut self, name: &str) -> Document<'a> {
function records (line 90) | pub fn records(module: &TypedModule) -> Vec<(&str, String)> {
function record_definition (line 127) | pub fn record_definition(name: &str, fields: &[(&str, Arc<Type>)]) -> St...
function module (line 143) | pub fn module<'a>(
function module_document (line 151) | fn module_document<'a>(
function register_function_exports (line 291) | fn register_function_exports(
function register_custom_type_exports (line 320) | fn register_custom_type_exports(
function module_function (line 428) | fn module_function<'a>(
function file_attribute (line 529) | fn file_attribute<'a>(
type DocCommentKind (line 538) | enum DocCommentKind {
type DocCommentContent (line 543) | enum DocCommentContent<'a> {
function hidden_module_doc (line 548) | fn hidden_module_doc<'a>() -> Document<'a> {
function module_doc (line 552) | fn module_doc<'a>(content: &Vec<EcoString>) -> Document<'a> {
function hidden_function_doc (line 556) | fn hidden_function_doc<'a>() -> Document<'a> {
function function_doc (line 560) | fn function_doc<'a>(content: &Vec<EcoString>) -> Document<'a> {
function doc_attribute (line 564) | fn doc_attribute<'a>(kind: DocCommentKind, content: DocCommentContent<'_...
function external_fun_arguments (line 591) | fn external_fun_arguments<'a>(arguments: &'a [TypedArg], env: &mut Env<'...
function fun_arguments (line 607) | fn fun_arguments<'a>(arguments: &'a [TypedArg], env: &mut Env<'a>) -> Do...
function wrap_arguments (line 616) | fn wrap_arguments<'a, I>(arguments: I) -> Document<'a>
function fun_spec (line 628) | fn fun_spec<'a>(
function atom_string (line 644) | fn atom_string(value: EcoString) -> Document<'static> {
function atom_pattern (line 648) | fn atom_pattern() -> &'static Regex {
function atom (line 653) | fn atom(value: &str) -> Document<'_> {
function escape_atom_string (line 666) | pub fn escape_atom_string(value: EcoString) -> EcoString {
function unicode_escape_sequence_pattern (line 678) | fn unicode_escape_sequence_pattern() -> &'static Regex {
function string_inner (line 685) | fn string_inner(value: &str) -> Document<'_> {
function string (line 702) | fn string(value: &str) -> Document<'_> {
function string_length_utf8_bytes (line 706) | fn string_length_utf8_bytes(str: &EcoString) -> usize {
function tuple (line 710) | fn tuple<'a>(elements: impl IntoIterator<Item = Document<'a>>) -> Docume...
function const_string_concatenate_bit_array (line 717) | fn const_string_concatenate_bit_array<'a>(
function const_string_concatenate (line 726) | fn const_string_concatenate<'a>(
function const_string_concatenate_inner (line 736) | fn const_string_concatenate_inner<'a>(
function const_string_concatenate_argument (line 746) | fn const_string_concatenate_argument<'a>(
function string_concatenate (line 787) | fn string_concatenate<'a>(
function string_concatenate_argument (line 797) | fn string_concatenate_argument<'a>(value: &'a TypedExpr, env: &mut Env<'...
function bit_array (line 854) | fn bit_array<'a>(elements: impl IntoIterator<Item = Document<'a>>) -> Do...
function const_segment (line 861) | fn const_segment<'a>(
type Position (line 913) | enum Position {
function statement (line 918) | fn statement<'a>(
function expr_segment (line 931) | fn expr_segment<'a>(
function bit_array_segment (line 1003) | fn bit_array_segment<'a, Value: 'a, CreateDoc, SizeToDoc, UnitToDoc, Sta...
function block (line 1076) | fn block<'a>(statements: &'a Vec1<TypedStatement>, env: &mut Env<'a>) ->...
function statement_sequence (line 1091) | fn statement_sequence<'a>(statements: &'a [TypedStatement], env: &mut En...
function float_div (line 1115) | fn float_div<'a>(left: &'a TypedExpr, right: &'a TypedExpr, env: &mut En...
function int_div (line 1138) | fn int_div<'a>(
function bin_op (line 1168) | fn bin_op<'a>(
function binop_exprs (line 1198) | fn binop_exprs<'a>(
function binop_documents (line 1217) | fn binop_documents<'a>(left: Document<'a>, op: &'static str, right: Docu...
function let_assert (line 1225) | fn let_assert<'a>(
function let_ (line 1409) | fn let_<'a>(
function float (line 1421) | fn float<'a>(value: &str) -> Document<'a> {
function expr_list (line 1436) | fn expr_list<'a>(
function list (line 1453) | fn list<'a>(elements: Document<'a>, tail: Option<Document<'a>>) -> Docum...
function var (line 1465) | fn var<'a>(name: &'a str, constructor: &'a ValueConstructor, env: &mut E...
function function_reference (line 1515) | fn function_reference<'a>(module: Option<&'a str>, name: &'a str, arity:...
function int (line 1525) | fn int<'a>(value: &str) -> Document<'a> {
function const_inline (line 1538) | fn const_inline<'a>(literal: &'a TypedConstant, env: &mut Env<'a>) -> Do...
function record_constructor_function (line 1611) | fn record_constructor_function(tag: &EcoString, arity: usize) -> Documen...
function clause (line 1623) | fn clause<'a>(clause: &'a TypedClause, environment: &mut Env<'a>) -> Doc...
function clause_consequence (line 1683) | fn clause_consequence<'a>(
function optional_clause_guard (line 1711) | fn optional_clause_guard<'a>(
function bare_clause_guard (line 1735) | fn bare_clause_guard<'a>(
function clause_guard_string_concatenate (line 1806) | fn clause_guard_string_concatenate<'a>(
function clause_guard_string_concatenate_argument (line 1817) | fn clause_guard_string_concatenate_argument<'a>(
function tuple_index_inline (line 1874) | fn tuple_index_inline<'a>(
function clause_guard (line 1886) | fn clause_guard<'a>(
function clauses (line 1909) | fn clauses<'a>(cs: &'a [TypedClause], env: &mut Env<'a>) -> Document<'a> {
function case (line 1921) | fn case<'a>(subjects: &'a [TypedExpr], cs: &'a [TypedClause], env: &mut ...
function call (line 1944) | fn call<'a>(fun: &'a TypedExpr, arguments: &'a [TypedCallArg], env: &mut...
function module_fn_with_arguments (line 1955) | fn module_fn_with_arguments<'a>(
function docs_arguments_call (line 1973) | fn docs_arguments_call<'a>(
function record_update (line 2121) | fn record_update<'a>(
function begin_end (line 2146) | fn begin_end(document: Document<'_>) -> Document<'_> {
function maybe_block_expr (line 2150) | fn maybe_block_expr<'a>(expression: &'a TypedExpr, env: &mut Env<'a>) ->...
function needs_begin_end_wrapping (line 2158) | fn needs_begin_end_wrapping(expression: &TypedExpr) -> bool {
function todo (line 2192) | fn todo<'a>(message: Option<&'a TypedExpr>, location: SrcSpan, env: &mut...
function panic (line 2200) | fn panic<'a>(location: SrcSpan, message: Option<&'a TypedExpr>, env: &mu...
function echo (line 2208) | fn echo<'a>(
function erlang_error (line 2228) | fn erlang_error<'a>(
function expr (line 2269) | fn expr<'a>(expression: &'a TypedExpr, env: &mut Env<'a>) -> Document<'a> {
function pipeline (line 2385) | fn pipeline<'a>(
function assignment (line 2458) | fn assignment<'a>(
function assert (line 2480) | fn assert<'a>(assert: &'a TypedAssert, env: &mut Env<'a>) -> Document<'a> {
function assert_call (line 2615) | fn assert_call<'a>(
function assert_and (line 2674) | fn assert_and<'a>(
function assert_or (line 2766) | fn assert_or<'a>(
function assign_to_variable (line 2820) | fn assign_to_variable<'a>(
type AssertExpression (line 2837) | enum AssertExpression {
method from_expression (line 2844) | fn from_expression(expression: &TypedExpr) -> Self {
function asserted_expression (line 2853) | fn asserted_expression(
function negate_with (line 2894) | fn negate_with<'a>(op: &'static str, value: &'a TypedExpr, env: &mut Env...
function tuple_index (line 2898) | fn tuple_index<'a>(tuple: &'a TypedExpr, index: u64, env: &mut Env<'a>) ...
function module_select_fn (line 2906) | fn module_select_fn<'a>(type_: Arc<Type>, module_name: &'a str, label: &...
function fun (line 2917) | fn fun<'a>(
function incrementing_arguments_list (line 2938) | fn incrementing_arguments_list(arity: usize) -> EcoString {
function variable_name (line 2945) | fn variable_name(name: &str) -> EcoString {
function id_to_type_var (line 2956) | fn id_to_type_var(id: u64) -> Document<'static> {
function is_erlang_reserved_word (line 2973) | pub fn is_erlang_reserved_word(name: &str) -> bool {
function is_erlang_standard_library_module (line 3010) | pub fn is_erlang_standard_library_module(name: &str) -> bool {
function escape_erlang_existing_name (line 3081) | pub fn escape_erlang_existing_name(name: &str) -> &str {
function collect_type_var_usages (line 3097) | fn collect_type_var_usages<'a>(
function result_type_var_ids (line 3107) | fn result_type_var_ids(ids: &mut HashMap<u64, u64>, arg_ok: &Type, arg_e...
function type_var_ids (line 3135) | fn type_var_ids(type_: &Type, ids: &mut HashMap<u64, u64>) {
function erl_safe_type_name (line 3173) | fn erl_safe_type_name(mut name: EcoString) -> EcoString {
type TypePrinter (line 3223) | struct TypePrinter<'a> {
function new (line 3230) | fn new(current_module: &'a str) -> Self {
function with_var_usages (line 3238) | pub fn with_var_usages(mut self, var_usages: &'a HashMap<u64, u64>) -> S...
function print (line 3243) | pub fn print(&self, type_: &Type) -> Document<'static> {
function print_var (line 3267) | fn print_var(&self, type_: &TypeVar) -> Document<'static> {
function print_prelude_type (line 3284) | fn print_prelude_type(&self, name: &str, arguments: &[Arc<Type>]) -> Doc...
function print_type_app (line 3310) | fn print_type_app(
function print_fn (line 3328) | fn print_fn(&self, arguments: &[Arc<Type>], return_: &Type) -> Document<...
function var_as_any (line 3343) | fn var_as_any(mut self) -> Self {
function find_private_functions_referenced_in_importable_constants (line 3349) | fn find_private_functions_referenced_in_importable_constants(
function find_referenced_private_functions (line 3362) | fn find_referenced_private_functions(
FILE: compiler-core/src/erlang/pattern.rs
type PatternPrinter (line 7) | pub(super) struct PatternPrinter<'a, 'env> {
type StringPatternAssignment (line 24) | pub struct StringPatternAssignment<'a> {
function to_assignment_doc (line 47) | pub fn to_assignment_doc(&self) -> Document<'a> {
function new (line 53) | pub(super) fn new(environment: &'env mut Env<'a>) -> Self {
function reset_variables (line 62) | pub(super) fn reset_variables(&mut self) {
function print (line 66) | pub(super) fn print(&mut self, pattern: &'a TypedPattern) -> Document<'a> {
function bit_array_size (line 167) | fn bit_array_size(&mut self, size: &'a TypedBitArraySize) -> Document<'a> {
function bit_array_size_divide (line 216) | fn bit_array_size_divide(
function bit_array_size_operator (line 240) | fn bit_array_size_operator(
function tag_tuple_pattern (line 259) | fn tag_tuple_pattern(
function pattern_list (line 275) | fn pattern_list(
function pattern_segment (line 288) | fn pattern_segment(
FILE: compiler-core/src/erlang/tests.rs
function compile_test_project (line 44) | pub fn compile_test_project(
function integration_test (line 169) | fn integration_test() {
function integration_test0_1 (line 179) | fn integration_test0_1() {
function integration_test0_2 (line 190) | fn integration_test0_2() {
function integration_test0_3 (line 203) | fn integration_test0_3() {
function integration_test1 (line 214) | fn integration_test1() {
function integration_test1_1 (line 219) | fn integration_test1_1() {
function integration_test1_2 (line 227) | fn integration_test1_2() {
function integration_test1_4 (line 232) | fn integration_test1_4() {
function integration_test1_5 (line 240) | fn integration_test1_5() {
function integration_test1_6 (line 248) | fn integration_test1_6() {
function integration_test2 (line 259) | fn integration_test2() {
function integration_test5 (line 268) | fn integration_test5() {
function integration_test6 (line 280) | fn integration_test6() {
function integration_test8 (line 285) | fn integration_test8() {
function integration_test9 (line 291) | fn integration_test9() {
function integration_test10 (line 299) | fn integration_test10() {
function integration_test3 (line 307) | fn integration_test3() {
function integration_test11 (line 315) | fn integration_test11() {
function integration_test12 (line 323) | fn integration_test12() {
function integration_test13 (line 332) | fn integration_test13() {
function integration_test16 (line 341) | fn integration_test16() {
function integration_test17 (line 349) | fn integration_test17() {
function integration_test18 (line 360) | fn integration_test18() {
function integration_test19 (line 365) | fn integration_test19() {
function integration_test20 (line 373) | fn integration_test20() {
function integration_test21 (line 386) | fn integration_test21() {
function integration_test22 (line 399) | fn integration_test22() {
function integration_test23 (line 419) | fn integration_test23() {
function binop_parens (line 438) | fn binop_parens() {
function field_access_function_call (line 452) | fn field_access_function_call() {
function field_access_function_call1 (line 469) | fn field_access_function_call1() {
function block_assignment (line 484) | fn block_assignment() {
function recursive_type (line 499) | fn recursive_type() {
function tuple_access_in_guard (line 517) | fn tuple_access_in_guard() {
function variable_name_underscores_preserved (line 533) | fn variable_name_underscores_preserved() {
function allowed_string_escapes (line 546) | fn allowed_string_escapes() {
function keyword_constructors (line 552) | fn keyword_constructors() {
function keyword_constructors1 (line 558) | fn keyword_constructors1() {
function discard_in_assert (line 563) | fn discard_in_assert() {
function operator_pipe_right_hand_side (line 574) | fn operator_pipe_right_hand_side() {
function negation (line 587) | fn negation() {
function negation_block (line 596) | fn negation_block() {
function tail_maybe_expr_block (line 609) | fn tail_maybe_expr_block() {
function guard_variable_rewriting (line 627) | fn guard_variable_rewriting() {
function function_argument_shadowing (line 644) | fn function_argument_shadowing() {
function dynamic (line 659) | fn dynamic() {
function inline_const_pattern_option (line 665) | fn inline_const_pattern_option() {
function positive_zero (line 683) | fn positive_zero() {
function scientific_notation (line 695) | fn scientific_notation() {
function type_named_else (line 708) | fn type_named_else() {
function type_named_module_info (line 724) | fn type_named_module_info() {
function function_named_module_info (line 740) | fn function_named_module_info() {
function function_named_module_info_imported (line 756) | fn function_named_module_info_imported() {
function function_named_module_info_imported_qualified (line 779) | fn function_named_module_info_imported_qualified() {
function constant_named_module_info (line 802) | fn constant_named_module_info() {
function constant_named_module_info_imported (line 816) | fn constant_named_module_info_imported() {
function constant_named_module_info_imported_qualified (line 837) | fn constant_named_module_info_imported_qualified() {
function constant_named_module_info_with_function_inside (line 858) | fn constant_named_module_info_with_function_inside() {
function constant_named_module_info_with_function_inside_imported (line 876) | fn constant_named_module_info_with_function_inside_imported() {
function constant_named_module_info_with_function_inside_imported_qualified (line 901) | fn constant_named_module_info_with_function_inside_imported_qualified() {
function function_named_module_info_in_constant (line 926) | fn function_named_module_info_in_constant() {
function function_named_module_info_in_constant_imported (line 944) | fn function_named_module_info_in_constant_imported() {
function function_named_module_info_in_constant_imported_qualified (line 969) | fn function_named_module_info_in_constant_imported_qualified() {
function windows_file_escaping_bug (line 994) | fn windows_file_escaping_bug() {
function bit_pattern_shadowing (line 1003) | fn bit_pattern_shadowing() {
function float_division_by_literal_zero (line 1018) | fn float_division_by_literal_zero() {
function float_division_by_literal_non_zero (line 1028) | fn float_division_by_literal_non_zero() {
FILE: compiler-core/src/erlang/tests/assert.rs
function assert_variable (line 4) | fn assert_variable() {
function assert_literal (line 16) | fn assert_literal() {
function assert_binary_operation (line 27) | fn assert_binary_operation() {
function assert_binary_operation2 (line 39) | fn assert_binary_operation2() {
function assert_binary_operation3 (line 50) | fn assert_binary_operation3() {
function assert_function_call (line 61) | fn assert_function_call() {
function assert_function_call2 (line 76) | fn assert_function_call2() {
function assert_nested_function_call (line 91) | fn assert_nested_function_call() {
function assert_binary_operator_with_side_effects (line 106) | fn assert_binary_operator_with_side_effects() {
function assert_binary_operator_with_side_effects2 (line 122) | fn assert_binary_operator_with_side_effects2() {
function assert_with_message (line 138) | fn assert_with_message() {
function assert_with_block_message (line 149) | fn assert_with_block_message() {
FILE: compiler-core/src/erlang/tests/bit_arrays.rs
function bit_array (line 4) | fn bit_array() {
function bit_array_float (line 20) | fn bit_array_float() {
function bit_array1 (line 31) | fn bit_array1() {
function bit_array2 (line 45) | fn bit_array2() {
function bit_array3 (line 57) | fn bit_array3() {
function bit_array4 (line 69) | fn bit_array4() {
function bit_array5 (line 81) | fn bit_array5() {
function bit_array_discard (line 93) | fn bit_array_discard() {
function bit_array_discard1 (line 109) | fn bit_array_discard1() {
function bit_array_declare_and_use_var (line 123) | fn bit_array_declare_and_use_var() {
function unicode_bit_array_1 (line 134) | fn unicode_bit_array_1() {
function unicode_bit_array_2 (line 145) | fn unicode_bit_array_2() {
function bit_array_literal_string_constant_is_treated_as_utf8 (line 155) | fn bit_array_literal_string_constant_is_treated_as_utf8() {
function bit_array_literal_string_is_treated_as_utf8 (line 165) | fn bit_array_literal_string_is_treated_as_utf8() {
function bit_array_literal_string_pattern_is_treated_as_utf8 (line 175) | fn bit_array_literal_string_pattern_is_treated_as_utf8() {
function discard_utf8_pattern (line 188) | fn discard_utf8_pattern() {
function pipe_size_segment (line 199) | fn pipe_size_segment() {
function utf16_codepoint_little_endian (line 214) | fn utf16_codepoint_little_endian() {
function utf32_codepoint_little_endian (line 225) | fn utf32_codepoint_little_endian() {
function pattern_match_utf16_codepoint_little_endian (line 236) | fn pattern_match_utf16_codepoint_little_endian() {
function pattern_match_utf32_codepoint_little_endian (line 248) | fn pattern_match_utf32_codepoint_little_endian() {
function operator_in_pattern_size (line 260) | fn operator_in_pattern_size() {
function operator_in_pattern_size2 (line 271) | fn operator_in_pattern_size2() {
function operator_in_pattern_size3 (line 282) | fn operator_in_pattern_size3() {
function block_in_pattern_size (line 294) | fn block_in_pattern_size() {
function non_byte_aligned_size_calculation (line 305) | fn non_byte_aligned_size_calculation() {
function unicode_character_encoding_in_bit_array_pattern_segment (line 319) | fn unicode_character_encoding_in_bit_array_pattern_segment() {
FILE: compiler-core/src/erlang/tests/case.rs
function alternative_pattern_variable_rewriting (line 5) | fn alternative_pattern_variable_rewriting() {
function positive_zero_pattern (line 23) | fn positive_zero_pattern() {
function negative_zero_pattern (line 38) | fn negative_zero_pattern() {
function not (line 52) | fn not() {
function not_two (line 65) | fn not_two() {
function spread_empty_list (line 79) | fn spread_empty_list() {
function spread_empty_list_assigning (line 93) | fn spread_empty_list_assigning() {
function alternative_patter_with_string_alias (line 107) | fn alternative_patter_with_string_alias() {
function aliased_string_prefix_pattern_referenced_in_guard (line 122) | fn aliased_string_prefix_pattern_referenced_in_guard() {
FILE: compiler-core/src/erlang/tests/conditional_compilation.rs
function excluded_attribute_syntax (line 4) | fn excluded_attribute_syntax() {
function included_attribute_syntax (line 13) | fn included_attribute_syntax() {
FILE: compiler-core/src/erlang/tests/consts.rs
function record_constructor (line 5) | fn record_constructor() {
function record_constructor_in_tuple (line 22) | fn record_constructor_in_tuple() {
function const_type_variable (line 39) | fn const_type_variable() {
function const_generalise (line 52) | fn const_generalise() {
function pub_const_equal_to_private_function (line 69) | fn pub_const_equal_to_private_function() {
function pub_const_equal_to_record_with_private_function_field (line 82) | fn pub_const_equal_to_record_with_private_function_field() {
function pub_const_equal_to_record_with_nested_private_function_field (line 99) | fn pub_const_equal_to_record_with_nested_private_function_field() {
function use_unqualified_pub_const_equal_to_private_function (line 120) | fn use_unqualified_pub_const_equal_to_private_function() {
function use_unqualified_pub_const_equal_to_record_with_private_function_field (line 133) | fn use_unqualified_pub_const_equal_to_record_with_private_function_field...
function use_qualified_pub_const_equal_to_record_with_private_function_field (line 150) | fn use_qualified_pub_const_equal_to_record_with_private_function_field() {
function use_private_in_internal (line 167) | fn use_private_in_internal() {
function use_private_in_list (line 185) | fn use_private_in_list() {
function use_private_in_tuple (line 198) | fn use_private_in_tuple() {
function list_prepend (line 211) | fn list_prepend() {
function list_prepend_from_other_module (line 225) | fn list_prepend_from_other_module() {
function list_prepend_literal (line 241) | fn list_prepend_literal() {
FILE: compiler-core/src/erlang/tests/custom_types.rs
function phantom (line 4) | fn phantom() {
function annotated_external_type (line 9) | fn annotated_external_type() {
function annotated_external_type_used_in_function (line 19) | fn annotated_external_type_used_in_function() {
function unused_opaque_constructor_is_generated_correctly (line 33) | fn unused_opaque_constructor_is_generated_correctly() {
FILE: compiler-core/src/erlang/tests/documentation.rs
function function_with_documentation (line 4) | fn function_with_documentation() {
function function_with_multiline_documentation (line 13) | fn function_with_multiline_documentation() {
function quotes_in_documentation_are_escaped (line 24) | fn quotes_in_documentation_are_escaped() {
function backslashes_in_documentation_are_escaped (line 33) | fn backslashes_in_documentation_are_escaped() {
function single_line_module_comment (line 42) | fn single_line_module_comment() {
function multi_line_module_comment (line 52) | fn multi_line_module_comment() {
function double_quotes_are_escaped_in_module_comment (line 64) | fn double_quotes_are_escaped_in_module_comment() {
function backslashes_are_escaped_in_module_comment (line 74) | fn backslashes_are_escaped_in_module_comment() {
function internal_function_has_no_documentation (line 84) | fn internal_function_has_no_documentation() {
FILE: compiler-core/src/erlang/tests/echo.rs
function echo_with_a_simple_expression (line 4) | pub fn echo_with_a_simple_expression() {
function echo_with_a_simple_expression_and_a_message (line 15) | pub fn echo_with_a_simple_expression_and_a_message() {
function echo_with_complex_expression_as_a_message (line 26) | pub fn echo_with_complex_expression_as_a_message() {
function multiple_echos_inside_expression (line 42) | pub fn multiple_echos_inside_expression() {
function echo_with_a_case_expression (line 54) | pub fn echo_with_a_case_expression() {
function echo_with_a_panic (line 67) | pub fn echo_with_a_panic() {
function echo_with_a_function_call (line 78) | pub fn echo_with_a_function_call() {
function echo_with_a_function_call_and_a_message (line 91) | pub fn echo_with_a_function_call_and_a_message() {
function echo_with_a_block (line 105) | pub fn echo_with_a_block() {
function echo_in_a_pipeline (line 119) | pub fn echo_in_a_pipeline() {
function echo_in_a_pipeline_with_message (line 134) | pub fn echo_in_a_pipeline_with_message() {
function multiple_echos_in_a_pipeline (line 149) | pub fn multiple_echos_in_a_pipeline() {
function pipeline_printed_by_echo_is_wrapped_in_begin_end_block (line 167) | pub fn pipeline_printed_by_echo_is_wrapped_in_begin_end_block() {
function record_update_printed_by_echo_is_wrapped_in_begin_end_block (line 183) | pub fn record_update_printed_by_echo_is_wrapped_in_begin_end_block() {
FILE: compiler-core/src/erlang/tests/external_fn.rs
function integration_test1_3 (line 4) | fn integration_test1_3() {
function integration_test7 (line 14) | fn integration_test7() {
function private_external_function_calls (line 25) | fn private_external_function_calls() {
function public_local_function_calls (line 37) | fn public_local_function_calls() {
function private_local_function_references (line 50) | fn private_local_function_references() {
function inlining_external_functions_from_another_module (line 62) | fn inlining_external_functions_from_another_module() {
function unqualified_inlining_external_functions_from_another_module (line 83) | fn unqualified_inlining_external_functions_from_another_module() {
function reference_to_imported_elixir_external_fn (line 104) | fn reference_to_imported_elixir_external_fn() {
function unqualified_reference_to_imported_elixir_external_fn (line 125) | fn unqualified_reference_to_imported_elixir_external_fn() {
function attribute_erlang (line 146) | fn attribute_erlang() {
function attribute_javascript (line 158) | fn attribute_javascript() {
function erlang_and_javascript (line 170) | fn erlang_and_javascript() {
function no_type_annotation_for_parameter (line 183) | fn no_type_annotation_for_parameter() {
function no_type_annotation_for_return (line 195) | fn no_type_annotation_for_return() {
function hole_parameter_erlang (line 207) | fn hole_parameter_erlang() {
function hole_return_erlang (line 219) | fn hole_return_erlang() {
function hole_parameter_javascript (line 231) | fn hole_parameter_javascript() {
function hole_return_javascript (line 243) | fn hole_return_javascript() {
function no_body (line 255) | fn no_body() {
function no_body_or_implementation (line 265) | fn no_body_or_implementation() {
function private (line 274) | fn private() {
function elixir (line 288) | fn elixir() {
function public_elixir (line 302) | fn public_elixir() {
function javascript_only (line 312) | fn javascript_only() {
function javascript_only_indirect (line 326) | fn javascript_only_indirect() {
function both_externals_no_valid_impl (line 345) | fn both_externals_no_valid_impl() {
function no_gleam_impl_no_annotations_function_fault_tolerance (line 363) | fn no_gleam_impl_no_annotations_function_fault_tolerance() {
function no_target_supported_function_fault_tolerance (line 376) | fn no_target_supported_function_fault_tolerance() {
function discarded_arg_in_external_are_passed_correctly (line 395) | fn discarded_arg_in_external_are_passed_correctly() {
function multiple_discarded_args_in_external_are_passed_correctly (line 405) | fn multiple_discarded_args_in_external_are_passed_correctly() {
function multiple_discarded_args_in_external_are_passed_correctly_2 (line 415) | fn multiple_discarded_args_in_external_are_passed_correctly_2() {
FILE: compiler-core/src/erlang/tests/functions.rs
function function_as_value (line 4) | fn function_as_value() {
function nested_imported_function_as_value (line 19) | fn nested_imported_function_as_value() {
function nested_unqualified_imported_function_as_value (line 33) | fn nested_unqualified_imported_function_as_value() {
function nested_aliased_imported_function_as_value (line 47) | fn nested_aliased_imported_function_as_value() {
function function_called (line 61) | fn function_called() {
function nested_imported_function_called (line 72) | fn nested_imported_function_called() {
function nested_unqualified_imported_function_called (line 86) | fn nested_unqualified_imported_function_called() {
function nested_aliased_imported_function_called (line 100) | fn nested_aliased_imported_function_called() {
function labelled_argument_ordering (line 114) | fn labelled_argument_ordering() {
function unused_private_functions (line 142) | fn unused_private_functions() {
FILE: compiler-core/src/erlang/tests/guards.rs
function clause_guards (line 4) | fn clause_guards() {
function clause_guards_1 (line 19) | fn clause_guards_1() {
function clause_guards_2 (line 33) | fn clause_guards_2() {
function clause_guards_3 (line 47) | fn clause_guards_3() {
function clause_guards_4 (line 61) | fn clause_guards_4() {
function clause_guards_5 (line 75) | fn clause_guards_5() {
function clause_guards_6 (line 89) | fn clause_guards_6() {
function clause_guards_7 (line 103) | fn clause_guards_7() {
function clause_guards_8 (line 117) | fn clause_guards_8() {
function clause_guards_9 (line 131) | fn clause_guards_9() {
function clause_guards_10 (line 146) | fn clause_guards_10() {
function clause_guards20 (line 161) | fn clause_guards20() {
function clause_guards21 (line 176) | fn clause_guards21() {
function clause_guards22 (line 190) | fn clause_guards22() {
function clause_guards23 (line 205) | fn clause_guards23() {
function clause_guards24 (line 222) | fn clause_guards24() {
function clause_guards25 (line 238) | fn clause_guards25() {
function clause_guards26 (line 255) | fn clause_guards26() {
function clause_guards27 (line 270) | fn clause_guards27() {
function clause_guards28 (line 286) | fn clause_guards28() {
function clause_guards29 (line 306) | fn clause_guards29() {
function clause_guards30 (line 322) | fn clause_guards30() {
function clause_guards31 (line 336) | fn clause_guards31() {
function clause_guards32 (line 350) | fn clause_guards32() {
function constants_in_guards (line 365) | fn constants_in_guards() {
function constants_in_guards1 (line 386) | fn constants_in_guards1() {
function only_guards (line 402) | fn only_guards() {
function only_guards1 (line 418) | fn only_guards1() {
function only_guards2 (line 434) | fn only_guards2() {
function only_guards3 (line 450) | fn only_guards3() {
function field_access (line 466) | fn field_access() {
function nested_record_access (line 487) | fn nested_record_access() {
function module_string_access (line 513) | fn module_string_access() {
function module_list_access (line 536) | fn module_list_access() {
function module_tuple_access (line 559) | fn module_tuple_access() {
function module_access (line 582) | fn module_access() {
function module_nested_access (line 608) | fn module_nested_access() {
FILE: compiler-core/src/erlang/tests/inlining.rs
constant BOOL_MODULE (line 3) | const BOOL_MODULE: &str = "
constant RESULT_MODULE (line 27) | const RESULT_MODULE: &str = "
function inline_higher_order_function (line 44) | fn inline_higher_order_function() {
function inline_higher_order_function_with_capture (line 60) | fn inline_higher_order_function_with_capture() {
function inline_higher_order_function_anonymous (line 81) | fn inline_higher_order_function_anonymous() {
function inline_function_which_calls_other_function (line 97) | fn inline_function_which_calls_other_function() {
function inline_function_with_use (line 124) | fn inline_function_with_use() {
function inline_function_with_use_and_anonymous (line 139) | fn inline_function_with_use_and_anonymous() {
function inline_function_with_use_becomes_tail_recursive (line 154) | fn inline_function_with_use_becomes_tail_recursive() {
function do_not_inline_parameters_used_more_than_once (line 170) | fn do_not_inline_parameters_used_more_than_once() {
function do_not_inline_parameters_that_have_side_effects (line 198) | fn do_not_inline_parameters_that_have_side_effects() {
function inline_anonymous_function_call (line 218) | fn inline_anonymous_function_call() {
function inline_anonymous_function_in_pipe (line 229) | fn inline_anonymous_function_in_pipe() {
function inline_function_capture_in_pipe (line 240) | fn inline_function_capture_in_pipe() {
function inlining_works_through_blocks (line 255) | fn inlining_works_through_blocks() {
function blocks_get_preserved_when_needed (line 266) | fn blocks_get_preserved_when_needed() {
function blocks_get_preserved_when_needed2 (line 281) | fn blocks_get_preserved_when_needed2() {
function parameters_from_nested_functions_are_correctly_inlined (line 292) | fn parameters_from_nested_functions_are_correctly_inlined() {
function inlining_works_properly_with_record_updates (line 318) | fn inlining_works_properly_with_record_updates() {
function inline_shadowed_variable (line 339) | fn inline_shadowed_variable() {
function inline_variable_shadowing_parameter (line 358) | fn inline_variable_shadowing_parameter() {
function inline_shadowed_variable_nested (line 374) | fn inline_shadowed_variable_nested() {
function inline_variable_shadowed_in_case_pattern (line 395) | fn inline_variable_shadowed_in_case_pattern() {
function inline_variable_shadowing_case_pattern (line 415) | fn inline_variable_shadowing_case_pattern() {
FILE: compiler-core/src/erlang/tests/let_assert.rs
function one_var (line 4) | fn one_var() {
function more_than_one_var (line 15) | fn more_than_one_var() {
function pattern_let (line 26) | fn pattern_let() {
function variable_rewrites (line 37) | fn variable_rewrites() {
function message (line 49) | fn message() {
function variable_message (line 61) | fn variable_message() {
function just_variable (line 73) | fn just_variable() {
function tuple_pattern (line 83) | fn tuple_pattern() {
function int_pattern (line 93) | fn int_pattern() {
function float_pattern (line 102) | fn float_pattern() {
function string_pattern (line 111) | fn string_pattern() {
function assignment_pattern (line 120) | fn assignment_pattern() {
function discard_pattern (line 130) | fn discard_pattern() {
function list_pattern (line 139) | fn list_pattern() {
function list_pattern_with_multiple_variables (line 149) | fn list_pattern_with_multiple_variables() {
function constructor_pattern (line 159) | fn constructor_pattern() {
function constructor_pattern_with_multiple_variables (line 169) | fn constructor_pattern_with_multiple_variables() {
function bit_array_pattern (line 184) | fn bit_array_pattern() {
function string_prefix_pattern (line 194) | fn string_prefix_pattern() {
function string_prefix_pattern_with_prefix_binding (line 204) | fn string_prefix_pattern_with_prefix_binding() {
function let_assert_at_end_of_block (line 214) | fn let_assert_at_end_of_block() {
function reference_earlier_segment (line 229) | fn reference_earlier_segment() {
function bit_array_assignment_int (line 242) | fn bit_array_assignment_int() {
function bit_array_assignment_float (line 255) | fn bit_array_assignment_float() {
function bit_array_assignment_string (line 268) | fn bit_array_assignment_string() {
function bit_array_assignment_discard (line 281) | fn bit_array_assignment_discard() {
function let_assert_should_not_use_redefined_variable (line 294) | fn let_assert_should_not_use_redefined_variable() {
FILE: compiler-core/src/erlang/tests/numbers.rs
function numbers_with_underscores (line 4) | fn numbers_with_underscores() {
function numbers_with_underscores1 (line 16) | fn numbers_with_underscores1() {
function numbers_with_underscores2 (line 30) | fn numbers_with_underscores2() {
function numbers_with_scientific_notation (line 43) | fn numbers_with_scientific_notation() {
function int_negation (line 58) | fn int_negation() {
function repeated_int_negation (line 70) | fn repeated_int_negation() {
function zero_b_in_hex (line 83) | fn zero_b_in_hex() {
FILE: compiler-core/src/erlang/tests/panic.rs
function panic_as (line 4) | fn panic_as() {
function plain (line 15) | fn plain() {
function panic_as_function (line 26) | fn panic_as_function() {
function piped (line 41) | fn piped() {
function piped_chain (line 53) | fn piped_chain() {
FILE: compiler-core/src/erlang/tests/patterns.rs
function alternative_patterns (line 4) | fn alternative_patterns() {
function alternative_patterns1 (line 23) | fn alternative_patterns1() {
function alternative_patterns2 (line 36) | fn alternative_patterns2() {
function alternative_patterns3 (line 52) | fn alternative_patterns3() {
function pattern_as (line 69) | fn pattern_as() {
function string_prefix_as_pattern_with_multiple_subjects (line 81) | fn string_prefix_as_pattern_with_multiple_subjects() {
function string_prefix_as_pattern_with_multiple_subjects_and_guard (line 93) | fn string_prefix_as_pattern_with_multiple_subjects_and_guard() {
function string_prefix_as_pattern_with_list (line 105) | fn string_prefix_as_pattern_with_list() {
function string_prefix_as_pattern_with_assertion (line 117) | fn string_prefix_as_pattern_with_assertion() {
FILE: compiler-core/src/erlang/tests/pipes.rs
function clever_pipe_rewriting (line 4) | fn clever_pipe_rewriting() {
function clever_pipe_rewriting1 (line 14) | fn clever_pipe_rewriting1() {
function block_expr_into_pipe (line 25) | fn block_expr_into_pipe() {
function pipe_in_list (line 39) | fn pipe_in_list() {
function pipe_in_tuple (line 50) | fn pipe_in_tuple() {
function pipe_in_case_subject (line 61) | fn pipe_in_case_subject() {
function pipe_in_record_update (line 73) | fn pipe_in_record_update() {
function pipe_in_eq (line 91) | fn pipe_in_eq() {
function call_pipeline_result (line 105) | fn call_pipeline_result() {
function pipe_in_call (line 121) | fn pipe_in_call() {
function multiple_pipes (line 140) | fn multiple_pipes() {
FILE: compiler-core/src/erlang/tests/prelude.rs
function qualified_prelude (line 4) | fn qualified_prelude() {
FILE: compiler-core/src/erlang/tests/records.rs
function basic (line 6) | fn basic() {
function reserve_words (line 17) | fn reserve_words() {
function type_vars (line 30) | fn type_vars() {
function module_types (line 43) | fn module_types() {
function long_definition_formatting (line 63) | fn long_definition_formatting() {
function record_accessors (line 87) | fn record_accessors() {
function record_accessor_multiple_variants (line 99) | fn record_accessor_multiple_variants() {
function record_accessor_multiple_variants_positions_other_than_first (line 112) | fn record_accessor_multiple_variants_positions_other_than_first() {
function record_accessor_multiple_variants_parameterised_types (line 127) | fn record_accessor_multiple_variants_parameterised_types() {
function record_accessor_multiple_with_first_position_different_types (line 142) | fn record_accessor_multiple_with_first_position_different_types() {
function record_spread (line 156) | fn record_spread() {
function record_spread1 (line 174) | fn record_spread1() {
function
Condensed preview — 4379 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,863K chars).
[
{
"path": ".editorconfig",
"chars": 537,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
},
{
"path": ".gitattributes",
"chars": 156,
"preview": "[attr]generated linguist-generated=true diff=generated\n\n# Tests:\ntest-package-compiler/src/generated_tests.rs generated\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 324,
"preview": "---\nname: Bug report\nabout: Something isn't working\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!--\nPlease include the fo"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 504,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n<!--\nGleam is"
},
{
"path": ".github/actions/build-container/action.yml",
"chars": 3838,
"preview": "name: \"Build Gleam\"\ndescription: \"Build Gleam Container\"\ninputs:\n version:\n description: \"Build Version\"\n require"
},
{
"path": ".github/actions/build-release/action.yml",
"chars": 9833,
"preview": "name: \"Build Gleam\"\ndescription: \"Build Gleam Release\"\ninputs:\n version:\n description: \"Build Version\"\n required:"
},
{
"path": ".github/dependabot.yml",
"chars": 775,
"preview": "version: 2\nupdates:\n- package-ecosystem: github-actions\n directory: \"/\"\n labels: []\n schedule:\n interval: monthly\n"
},
{
"path": ".github/pull_request_template.md",
"chars": 227,
"preview": "- [ ] The changes in this PR have been discussed beforehand in an issue\n- [ ] The issue for this PR has been linked\n- [ "
},
{
"path": ".github/workflows/ci.yaml",
"chars": 16250,
"preview": "name: ci\non:\n pull_request:\n paths-ignore:\n - \"CHANGELOG.md\"\n - \"docs/**\"\n push:\n branches:\n - ma"
},
{
"path": ".github/workflows/release-containers.yaml",
"chars": 980,
"preview": "name: release-containers\non:\n release:\n types:\n - \"published\"\n\npermissions:\n packages: write\n id-token: write"
},
{
"path": ".github/workflows/release-nightly.yaml",
"chars": 5493,
"preview": "name: release-nightly\n\non:\n workflow_dispatch:\n schedule:\n - cron: \"45 0 * * *\"\n\nenv:\n CARGO_TERM_COLOR: always\n "
},
{
"path": ".github/workflows/release.yaml",
"chars": 3423,
"preview": "name: release\non:\n push:\n tags:\n - \"v*\"\n\nenv:\n CARGO_TERM_COLOR: always\n RUSTFLAGS: \"-D warnings\"\n\npermission"
},
{
"path": ".gitignore",
"chars": 106,
"preview": "**/*.rs.bk\n**/*.beam\n/target/\n/tmp\n.idea/\n.idea/*\nerl_crash.dump\n*.lock\nnode_modules/\ncompiler-cli/build/\n"
},
{
"path": ".vscode/settings.json",
"chars": 529,
"preview": "{\n // Don't show these files in search\n \"search.exclude\": {\n // Test snapshots\n \"**/*.snap\": true,\n\n // Gener"
},
{
"path": ".well-known/funding-manifest-urls",
"chars": 31,
"preview": "https://gleam.run/funding.json\n"
},
{
"path": "CHANGELOG.md",
"chars": 2944,
"preview": "# Changelog\n\n## Unreleased\n\n### Compiler\n\n- The compiler now supports list prepending in constants. For example:\n\n ```g"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5481,
"preview": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make particip"
},
{
"path": "CONTRIBUTING.md",
"chars": 3808,
"preview": "# Contributing to Gleam\n\nThanks for contributing to Gleam!\n\nBefore continuing please read our [code of conduct][code-of-"
},
{
"path": "Cargo.toml",
"chars": 1822,
"preview": "[workspace]\nresolver = \"2\"\nmembers = [\n \"gleam-bin\",\n \"compiler-cli\",\n \"compiler-core\",\n \"compiler-wasm\",\n \"languag"
},
{
"path": "Cross.toml",
"chars": 66,
"preview": "[target.x86_64-unknown-linux-musl]\nimage = \"clux/muslrust:stable\"\n"
},
{
"path": "LICENCE",
"chars": 11353,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "Makefile",
"chars": 2165,
"preview": "#\n# Goals to be specified by user\n#\n\n.PHONY: help\nhelp:\n\t@cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | awk"
},
{
"path": "README.md",
"chars": 801,
"preview": "<p align=\"center\">\n <img src=\"images/lucy.png\" alt=\"Lucy, Gleam's mascot\">\n</p>\n\n<p align=\"center\">\n <a href=\"https://"
},
{
"path": "RELEASE.md",
"chars": 399,
"preview": "# Release checklist\n\n1. Update the version in each `Cargo.toml`.\n2. Update versions in `src/new.rs` for stdlib etc if re"
},
{
"path": "benchmark/list/.gitignore",
"chars": 34,
"preview": "*.beam\n*.ez\n/build\nerl_crash.dump\n"
},
{
"path": "benchmark/list/Makefile",
"chars": 567,
"preview": ".PHONY: build\nbuild: clean erlang nodejs deno bun\n\n.PHONY: clean\nclean:\n\trm -rf build\n\n.PHONY: erlang\nerlang:\n\t@echo tes"
},
{
"path": "benchmark/list/gleam.toml",
"chars": 174,
"preview": "name = \"list\"\nversion = \"1.0.0\"\ndescription = \"Benchmarks for lists\"\nlicenses = [\"Apache-2.0\"]\n\n[dependencies]\ngleam_std"
},
{
"path": "benchmark/list/manifest.toml",
"chars": 657,
"preview": "# This file was generated by Gleam\n# You typically do not need to edit this file\n\npackages = [\n { name = \"gleam_stdlib\""
},
{
"path": "benchmark/list/src/list.gleam",
"chars": 24,
"preview": "pub fn main() {\n Nil\n}\n"
},
{
"path": "benchmark/list/test/benchmarks.gleam",
"chars": 245,
"preview": "import gleamy/bench\n\nimport gleam/io\nimport gleam/list\n\npub fn print_results(results: List(bench.BenchResults)) {\n resu"
},
{
"path": "benchmark/list/test/list_test.gleam",
"chars": 3201,
"preview": "import benchmarks.{print_results}\nimport gleam/list\nimport gleamy/bench\n\npub fn main() {\n print_results([bench_odd_nums"
},
{
"path": "bin/add-nightly-suffix-to-versions.sh",
"chars": 265,
"preview": "#!/bin/sh\n\n#\n# Add the `-nightly-YYYYMMDD` suffix the version of all Rust crates in the\n# workspace. Used by the nightly"
},
{
"path": "changelog/v1.1.md",
"chars": 98667,
"preview": "# Changelog\n\n## v1.1.0 - 2024-04-16\n\n### Formatter\n\n- Fixed a bug where the first subject of a case expression clause wo"
},
{
"path": "changelog/v1.10.md",
"chars": 14559,
"preview": "# Changelog\n\n## v1.10.0 - 2025-04-14\n\n### Bug fixes\n\n- Fixed a bug where the code action to unqualify types and values w"
},
{
"path": "changelog/v1.11.md",
"chars": 20122,
"preview": "# Changelog\n\n## v1.11.0 - 2025-06-02\n\n### Bug fixes\n\n- Fixed a bug where using a pipe operator on the right-hand side of"
},
{
"path": "changelog/v1.12.md",
"chars": 20016,
"preview": "# Changelog\n\n## v1.12.0 - 2025-08-05\n\n### Bug fixes\n\n- Corrected an error message that used incorrect terminology.\n ([L"
},
{
"path": "changelog/v1.13.md",
"chars": 25614,
"preview": "# Changelog\n\n## v1.13.0 - 2025-10-19\n\n## v1.13.0-rc2 - 2025-10-06\n\n### Bug fixes\n\n- Fixed a bug where the \"Extract funct"
},
{
"path": "changelog/v1.14.md",
"chars": 16496,
"preview": "# Changelog\n\n## v1.14.0 - 2025-12-25 🎁\n\n### Bug fixes\n\n- Fixed a bug where using bit array segments in guard clauses cou"
},
{
"path": "changelog/v1.15.md",
"chars": 15073,
"preview": "# Changelog\n\n## v1.15.0 - 2026-03-16\n\n- Fixed a bug where the language server wouldn't show the correct hover for some\n "
},
{
"path": "changelog/v1.2.md",
"chars": 17308,
"preview": "# Changelog\n\n## v1.2.0 - 2024-05-27\n\n## v1.2.0-rc2 - 2024-05-27\n\n### Bug fixes\n\n- Fixed a bug where the formatter would "
},
{
"path": "changelog/v1.3.md",
"chars": 7791,
"preview": "# Changelog\n\n## v1.3.0 - 2024-07-09\n\n## v1.3.0-rc3 - 2024-07-08\n\n- Fixed a bug where not all pure function calls in cons"
},
{
"path": "changelog/v1.4.md",
"chars": 9930,
"preview": "# Changelog\n\n## v1.4.0 - 2024-08-02\n\n### Bug Fixes\n\n- Fixed a bug where pipe function arity errors could have an incorre"
},
{
"path": "changelog/v1.5.md",
"chars": 13384,
"preview": "# Changelog\n\n## v1.5.0 - 2024-09-19\n\n## v1.5.0-rc2 - 2024-09-18\n\n### Bug Fixes\n\n- Fixed a bug where the formatter would "
},
{
"path": "changelog/v1.6.md",
"chars": 13274,
"preview": "# Changelog\n\n## v1.6.0 - 2024-11-18\n\n### Bug fixes\n\n- Fixed a bug where the language server would delete pieces of code "
},
{
"path": "changelog/v1.7.md",
"chars": 11421,
"preview": "# Changelog\n\n## 1.7.0 - 2025-01-05\n\nHappy birthday Louis! 🎁\n\n## 1.7.0-rc3 - 2025-01-02\n\n### Formatter\n\n- Function captur"
},
{
"path": "changelog/v1.8.md",
"chars": 8128,
"preview": "# Changelog\n\nDedicated to the memory of Len Pilfold.\n\n## v1.8.0 - 2025-02-07\n\n## v1.8.0-rc1 - 2025-02-03\n\n### Compiler\n\n"
},
{
"path": "changelog/v1.9.md",
"chars": 9133,
"preview": "# Changelog\n\n## v1.9.0 - 2025-03-09\n\n## v1.9.0-rc2 - 2025-03-07\n\n### Compiler\n\n- Made runtime warnings regarding the use"
},
{
"path": "compiler-cli/Cargo.toml",
"chars": 2000,
"preview": "[package]\nname = \"gleam-cli\"\nversion = \"1.15.1\"\nauthors = [\"Louis Pilfold <louis@lpil.uk>\"]\nedition = \"2024\"\nlicense = \""
},
{
"path": "compiler-cli/clippy.toml",
"chars": 238,
"preview": "disallowed-methods = [\n { path = \"std::path::Path::new\", reason = \"Manually constructed paths should use camino::Utf8Pa"
},
{
"path": "compiler-cli/src/add.rs",
"chars": 5466,
"preview": "use camino::{Utf8Path, Utf8PathBuf};\n\nuse gleam_core::{\n Error, Result,\n error::{FileIoAction, FileKind},\n path"
},
{
"path": "compiler-cli/src/beam_compiler.rs",
"chars": 4817,
"preview": "use gleam_core::{\n Result,\n error::{Error, ShellCommandFailureReason},\n io::{FileSystemWriter, Stdio},\n path"
},
{
"path": "compiler-cli/src/build.rs",
"chars": 2103,
"preview": "use std::{rc::Rc, time::Instant};\n\nuse gleam_core::{\n Result,\n build::{Built, Codegen, NullTelemetry, Options, Pro"
},
{
"path": "compiler-cli/src/build_lock.rs",
"chars": 4828,
"preview": "use camino::Utf8PathBuf;\nuse gleam_core::{\n Error, Result,\n build::{Mode, Target, Telemetry},\n error::{FileIoAc"
},
{
"path": "compiler-cli/src/cli.rs",
"chars": 6833,
"preview": "use ecow::EcoString;\nuse gleam_core::{\n build::Telemetry,\n error::{Error, StandardIoAction},\n manifest::{Change"
},
{
"path": "compiler-cli/src/compile_package.rs",
"chars": 3111,
"preview": "use crate::{\n CompilePackage, config,\n fs::{self, ConsoleWarningEmitter, ProjectIO},\n};\nuse camino::Utf8Path;\nuse "
},
{
"path": "compiler-cli/src/config.rs",
"chars": 4458,
"preview": "use camino::Utf8PathBuf;\n\nuse gleam_core::{\n config::PackageConfig,\n error::{Error, FileIoAction, FileKind},\n m"
},
{
"path": "compiler-cli/src/dependencies/dependency_manager.rs",
"chars": 11961,
"preview": "use ecow::EcoString;\nuse futures::future;\nuse gleam_core::{\n Error, Result,\n build::{Mode, Telemetry},\n config:"
},
{
"path": "compiler-cli/src/dependencies/snapshots/gleam_cli__dependencies__tests__pretty_print_major_versions_available.snap",
"chars": 387,
"preview": "---\nsource: compiler-cli/src/dependencies/tests.rs\nassertion_line: 1349\nexpression: output\nsnapshot_kind: text\n---\nThe f"
},
{
"path": "compiler-cli/src/dependencies/snapshots/gleam_cli__dependencies__tests__pretty_print_version_updates.snap",
"chars": 322,
"preview": "---\nsource: compiler-cli/src/dependencies/tests.rs\nassertion_line: 1373\nexpression: output\nsnapshot_kind: text\n---\nPacka"
},
{
"path": "compiler-cli/src/dependencies/tests.rs",
"chars": 47952,
"preview": "use std::collections::HashMap;\n\nuse camino::{Utf8Path, Utf8PathBuf};\nuse ecow::EcoString;\nuse hexpm::version::Version;\nu"
},
{
"path": "compiler-cli/src/dependencies.rs",
"chars": 42087,
"preview": "mod dependency_manager;\n\nuse std::{\n cell::RefCell,\n collections::{HashMap, HashSet},\n io::ErrorKind,\n proce"
},
{
"path": "compiler-cli/src/docs.rs",
"chars": 7447,
"preview": "use std::{collections::HashMap, time::SystemTime};\n\nuse camino::{Utf8Path, Utf8PathBuf};\nuse ecow::EcoString;\n\nuse crate"
},
{
"path": "compiler-cli/src/export.rs",
"chars": 5435,
"preview": "use camino::Utf8PathBuf;\nuse gleam_core::{\n Result,\n analyse::TargetSupport,\n build::{Codegen, Compile, Mode, O"
},
{
"path": "compiler-cli/src/fix.rs",
"chars": 2863,
"preview": "use std::rc::Rc;\n\nuse gleam_core::{\n Error, Result, Warning,\n analyse::TargetSupport,\n build::{Codegen, Compile"
},
{
"path": "compiler-cli/src/format.rs",
"chars": 3029,
"preview": "use gleam_core::{\n error::{Error, FileIoAction, FileKind, Result, StandardIoAction, Unformatted},\n io::Content,\n "
},
{
"path": "compiler-cli/src/fs/tests.rs",
"chars": 5138,
"preview": "use camino::Utf8Path;\nuse itertools::Itertools;\n\n#[test]\nfn is_inside_git_work_tree_ok() {\n let tmp_dir = tempfile::t"
},
{
"path": "compiler-cli/src/fs.rs",
"chars": 24192,
"preview": "use gleam_core::{\n Result, Warning,\n build::{NullTelemetry, Target},\n error::{Error, FileIoAction, FileKind, OS"
},
{
"path": "compiler-cli/src/hex/auth.rs",
"chars": 13058,
"preview": "use crate::{cli, http::HttpClient};\nuse ecow::EcoString;\nuse gleam_core::{\n Error, Result, encryption,\n error::{Fi"
},
{
"path": "compiler-cli/src/hex.rs",
"chars": 4427,
"preview": "mod auth;\n\nuse crate::{cli, http::HttpClient};\nuse gleam_core::{\n Error, Result,\n hex::{self, RetirementReason},\n "
},
{
"path": "compiler-cli/src/http.rs",
"chars": 2562,
"preview": "use std::convert::TryInto;\nuse std::sync::OnceLock;\n\nuse async_trait::async_trait;\nuse camino::Utf8PathBuf;\nuse gleam_co"
},
{
"path": "compiler-cli/src/lib.rs",
"chars": 27596,
"preview": "#![warn(\n clippy::all,\n clippy::dbg_macro,\n clippy::todo,\n clippy::mem_forget,\n clippy::use_self,\n cli"
},
{
"path": "compiler-cli/src/lsp.rs",
"chars": 1934,
"preview": "use crate::{\n build_lock::{BuildLock, Guard},\n fs::ProjectIO,\n};\nuse gleam_core::{\n Result,\n build::{Mode, N"
},
{
"path": "compiler-cli/src/new/snapshots/gleam_cli__new__tests__new_with_default_template@src__my_project.gleam.snap",
"chars": 246,
"preview": "---\nsource: compiler-cli/src/new/tests.rs\nexpression: \"crate::fs::read(Utf8PathBuf::from_path_buf(file_path.to_path_buf("
},
{
"path": "compiler-cli/src/new/snapshots/gleam_cli__new__tests__new_with_default_template@test__my_project_test.gleam.snap",
"chars": 434,
"preview": "---\nsource: compiler-cli/src/new/tests.rs\nassertion_line: 56\nexpression: \"crate::fs::read(Utf8PathBuf::from_path_buf(fil"
},
{
"path": "compiler-cli/src/new/snapshots/gleam_cli__new__tests__new_with_javascript_template@src__my_project.gleam.snap",
"chars": 246,
"preview": "---\nsource: compiler-cli/src/new/tests.rs\nexpression: \"crate::fs::read(Utf8PathBuf::from_path_buf(file_path.to_path_buf("
},
{
"path": "compiler-cli/src/new/snapshots/gleam_cli__new__tests__new_with_javascript_template@test__my_project_test.gleam.snap",
"chars": 434,
"preview": "---\nsource: compiler-cli/src/new/tests.rs\nassertion_line: 86\nexpression: \"crate::fs::read(Utf8PathBuf::from_path_buf(fil"
},
{
"path": "compiler-cli/src/new/tests.rs",
"chars": 13343,
"preview": "use std::path::PathBuf;\n\nuse camino::{Utf8Path, Utf8PathBuf};\nuse gleam_core::Error;\n\n#[test]\nfn new() {\n let tmp = t"
},
{
"path": "compiler-cli/src/new.rs",
"chars": 15788,
"preview": "use camino::{Utf8Path, Utf8PathBuf};\nuse clap::ValueEnum;\nuse gleam_core::{\n Result, erlang, error,\n error::{Error"
},
{
"path": "compiler-cli/src/owner.rs",
"chars": 1195,
"preview": "use crate::{cli, http::HttpClient};\nuse gleam_core::{Result, hex};\n\npub fn transfer(package: String, new_owner_username_"
},
{
"path": "compiler-cli/src/panic.rs",
"chars": 1894,
"preview": "#![allow(clippy::unwrap_used)]\nuse std::panic::PanicHookInfo;\n\npub fn add_handler() {\n std::panic::set_hook(Box::new("
},
{
"path": "compiler-cli/src/publish.rs",
"chars": 33801,
"preview": "use camino::{Utf8Path, Utf8PathBuf};\nuse ecow::EcoString;\nuse flate2::{Compression, write::GzEncoder};\nuse gleam_core::{"
},
{
"path": "compiler-cli/src/remove.rs",
"chars": 1667,
"preview": "use gleam_core::{\n Error, Result,\n error::{FileIoAction, FileKind},\n paths::ProjectPaths,\n};\n\nuse crate::{cli, "
},
{
"path": "compiler-cli/src/run.rs",
"chars": 11938,
"preview": "use std::sync::OnceLock;\n\nuse camino::Utf8PathBuf;\nuse ecow::EcoString;\nuse gleam_core::{\n analyse::TargetSupport,\n "
},
{
"path": "compiler-cli/src/shell.rs",
"chars": 1630,
"preview": "use gleam_core::{\n analyse::TargetSupport,\n build::{Codegen, Compile, Mode, Options, Target},\n error::{Error, S"
},
{
"path": "compiler-cli/src/text_layout.rs",
"chars": 2517,
"preview": "use ecow::EcoString;\n\n/// Generates a string delimeted table with 2 spaces between each column, columns padded with\n/// "
},
{
"path": "compiler-cli/templates/erlang-shipment-entrypoint.ps1",
"chars": 723,
"preview": "$ErrorActionPreference = \"Stop\"\n\n$PackageName = \"$PACKAGE_NAME_FROM_GLEAM\"\n$BaseDirectory = $PSScriptRoot\n$ScriptCommand"
},
{
"path": "compiler-cli/templates/erlang-shipment-entrypoint.sh",
"chars": 540,
"preview": "#!/bin/sh\nset -eu\n\nPACKAGE=$PACKAGE_NAME_FROM_GLEAM\nBASE=$(dirname \"$0\")\nCOMMAND=\"${1-default}\"\n\nrun() {\n exec erl \\\n "
},
{
"path": "compiler-cli/templates/gleam@@compile.erl",
"chars": 6231,
"preview": "#!/usr/bin/env escript\n-mode(compile).\n\n% TODO: Don't concurrently print warnings and errors\n% TODO: Some tests\n\nmain(_)"
},
{
"path": "compiler-cli/test/hello_world/.gitignore",
"chars": 6,
"preview": "build\n"
},
{
"path": "compiler-cli/test/hello_world/gleam.toml",
"chars": 121,
"preview": "name = \"hello_world\"\nversion = \"0.1.0\"\n\n[dependencies]\ngleam_stdlib = \"~> 0.28\"\n\n[dev_dependencies]\ngleeunit = \"~> 0.10\""
},
{
"path": "compiler-cli/test/hello_world/manifest.toml",
"chars": 633,
"preview": "# This file was generated by Gleam\n# You typically do not need to edit this file\n\npackages = [\n { name = \"gleam_stdlib\""
},
{
"path": "compiler-core/Cargo.toml",
"chars": 2255,
"preview": "[package]\nname = \"gleam-core\"\nversion = \"1.15.1\"\nauthors = [\"Louis Pilfold <louis@lpil.uk>\"]\nedition = \"2024\"\nlicense = "
},
{
"path": "compiler-core/clippy.toml",
"chars": 1831,
"preview": "disallowed-methods = [\n { path = \"std::env::current_dir\", reason = \"IO is not permitted in core\" },\n { path = \"std::pa"
},
{
"path": "compiler-core/src/analyse/imports.rs",
"chars": 11818,
"preview": "use ecow::EcoString;\n\nuse crate::{\n ast::{Publicity, SrcSpan, UnqualifiedImport, UntypedImport},\n build::Origin,\n "
},
{
"path": "compiler-core/src/analyse/name.rs",
"chars": 3626,
"preview": "use std::sync::OnceLock;\n\nuse ecow::{EcoString, eco_format};\nuse regex::Regex;\n\nuse crate::{\n ast::{ArgNames, SrcSpan"
},
{
"path": "compiler-core/src/analyse/tests.rs",
"chars": 553,
"preview": "use super::*;\n\n#[test]\nfn module_name_validation() {\n assert!(validate_module_name(&\"dream\".into()).is_ok());\n\n as"
},
{
"path": "compiler-core/src/analyse.rs",
"chars": 77575,
"preview": "mod imports;\npub mod name;\n\n#[cfg(test)]\nmod tests;\n\nuse crate::{\n GLEAM_CORE_PACKAGE_NAME, STDLIB_PACKAGE_NAME,\n "
},
{
"path": "compiler-core/src/ast/constant.rs",
"chars": 16492,
"preview": "use super::*;\nuse crate::analyse::Inferred;\nuse crate::type_::{FieldMap, HasType};\n\npub type TypedConstant = Constant<Ar"
},
{
"path": "compiler-core/src/ast/tests.rs",
"chars": 31664,
"preview": "use std::sync::Arc;\n\nuse camino::Utf8PathBuf;\nuse ecow::EcoString;\n\nuse crate::analyse::TargetSupport;\nuse crate::build:"
},
{
"path": "compiler-core/src/ast/typed.rs",
"chars": 59163,
"preview": "use type_::{FieldMap, TypedCallArg};\n\nuse super::*;\nuse crate::{\n build::ExpressionPosition,\n exhaustiveness::Comp"
},
{
"path": "compiler-core/src/ast/untyped.rs",
"chars": 8625,
"preview": "use vec1::Vec1;\n\nuse crate::parse::LiteralFloatValue;\n\nuse super::*;\n\n#[derive(Debug, Clone, PartialEq, Eq)]\npub enum Un"
},
{
"path": "compiler-core/src/ast/visit.rs",
"chars": 62271,
"preview": "//! AST traversal routines, referenced from [`syn::visit`](https://docs.rs/syn/latest/syn/visit/index.html)\n//!\n//! Each"
},
{
"path": "compiler-core/src/ast.rs",
"chars": 146071,
"preview": "mod constant;\nmod typed;\nmod untyped;\n\n#[cfg(test)]\nmod tests;\npub mod visit;\n\npub use self::typed::{InvalidExpression, "
},
{
"path": "compiler-core/src/ast_folder.rs",
"chars": 51333,
"preview": "use ecow::EcoString;\nuse itertools::Itertools;\nuse num_bigint::BigInt;\nuse vec1::Vec1;\n\nuse crate::{\n analyse::Inferr"
},
{
"path": "compiler-core/src/bit_array.rs",
"chars": 12173,
"preview": "use ecow::EcoString;\nuse num_bigint::BigInt;\n\nuse crate::ast::{self, BitArrayOption, SrcSpan};\nuse crate::build::Target;"
},
{
"path": "compiler-core/src/build/elixir_libraries.rs",
"chars": 4448,
"preview": "use crate::{\n Error,\n error::ShellCommandFailureReason,\n io::{Command, CommandExecutor, FileSystemReader, FileS"
},
{
"path": "compiler-core/src/build/module_loader/tests.rs",
"chars": 8009,
"preview": "use super::*;\nuse crate::{\n build::SourceFingerprint,\n io::{FileSystemWriter, memory::InMemoryFileSystem},\n lin"
},
{
"path": "compiler-core/src/build/module_loader.rs",
"chars": 5832,
"preview": "#[cfg(test)]\nmod tests;\n\nuse std::{collections::HashSet, time::SystemTime};\n\nuse camino::{Utf8Path, Utf8PathBuf};\n\nuse e"
},
{
"path": "compiler-core/src/build/native_file_copier/tests.rs",
"chars": 27665,
"preview": "use super::NativeFileCopier;\nuse crate::{\n build::{native_file_copier::CopiedNativeFiles, package_compiler::CheckModu"
},
{
"path": "compiler-core/src/build/native_file_copier.rs",
"chars": 9568,
"preview": "#[cfg(test)]\nmod tests;\n\nuse std::collections::{HashMap, HashSet};\n\nuse camino::{Utf8Path, Utf8PathBuf};\nuse ecow::{EcoS"
},
{
"path": "compiler-core/src/build/package_compiler/snapshots/gleam_core__build__package_compiler__tests__different_packages_defining_duplicate_module.snap",
"chars": 253,
"preview": "---\nsource: compiler-core/src/build/package_compiler/tests.rs\nexpression: output\n---\nerror: Duplicate module\n\nThe module"
},
{
"path": "compiler-core/src/build/package_compiler/snapshots/gleam_core__build__package_compiler__tests__same_package_defining_duplicate_module.snap",
"chars": 259,
"preview": "---\nsource: compiler-core/src/build/package_compiler/tests.rs\nexpression: output\n---\nerror: Duplicate module\n\nThe module"
},
{
"path": "compiler-core/src/build/package_compiler/tests.rs",
"chars": 2483,
"preview": "use std::collections::HashSet;\n\nuse camino::Utf8Path;\nuse ecow::EcoString;\n\nuse crate::{\n Error,\n build::{\n "
},
{
"path": "compiler-core/src/build/package_compiler.rs",
"chars": 25011,
"preview": "#[cfg(test)]\nmod tests;\n\nuse crate::analyse::{ModuleAnalyzerConstructor, TargetSupport};\nuse crate::build::package_loade"
},
{
"path": "compiler-core/src/build/package_loader/tests.rs",
"chars": 12474,
"preview": "use ecow::{EcoString, eco_format};\nuse hexpm::version::Version;\n\nuse super::*;\nuse crate::{\n Warning,\n build::Sour"
},
{
"path": "compiler-core/src/build/package_loader.rs",
"chars": 53527,
"preview": "#[cfg(test)]\nmod tests;\n\nuse std::{\n collections::{HashMap, HashSet},\n time::{Duration, SystemTime},\n};\n\nuse camin"
},
{
"path": "compiler-core/src/build/project_compiler.rs",
"chars": 26474,
"preview": "use crate::{\n Error, Result, Warning,\n analyse::TargetSupport,\n build::{\n Mode, Module, Origin, Package,"
},
{
"path": "compiler-core/src/build/telemetry.rs",
"chars": 1280,
"preview": "use std::{\n fmt::Debug,\n time::{Duration, Instant},\n};\n\nuse crate::{\n Warning,\n manifest::{PackageChanges, R"
},
{
"path": "compiler-core/src/build/tests.rs",
"chars": 1423,
"preview": "use crate::{Error, manifest::ManifestPackage};\n\nuse super::project_compiler::{BuildTool, usable_build_tools};\n\n#[test]\nf"
},
{
"path": "compiler-core/src/build.rs",
"chars": 25186,
"preview": "#![allow(warnings)]\n\nmod elixir_libraries;\nmod module_loader;\nmod native_file_copier;\npub mod package_compiler;\nmod pack"
},
{
"path": "compiler-core/src/call_graph/into_dependency_order_tests.rs",
"chars": 19342,
"preview": "use super::*;\nuse crate::{\n ast::{Arg, Function, ModuleConstant, Publicity},\n type_::{\n Deprecation,\n "
},
{
"path": "compiler-core/src/call_graph.rs",
"chars": 18199,
"preview": "//! Graphs that represent the relationships between entities in a Gleam module,\n//! such as module functions or constant"
},
{
"path": "compiler-core/src/codegen.rs",
"chars": 8428,
"preview": "use crate::{\n Result,\n build::{\n ErlangAppCodegenConfiguration, Module, module_erlang_name, package_compile"
},
{
"path": "compiler-core/src/config/stale_package_remover.rs",
"chars": 4318,
"preview": "use crate::manifest::Manifest;\nuse crate::requirement::Requirement;\nuse ecow::EcoString;\nuse hexpm::version::Version;\nus"
},
{
"path": "compiler-core/src/config.rs",
"chars": 38100,
"preview": "mod stale_package_remover;\nuse crate::error::{FileIoAction, FileKind};\nuse crate::io::FileSystemReader;\nuse crate::io::o"
},
{
"path": "compiler-core/src/dep_tree.rs",
"chars": 4920,
"preview": "use ecow::EcoString;\nuse petgraph::{Direction, algo::Cycle, graph::NodeIndex};\nuse std::collections::{HashMap, HashSet};"
},
{
"path": "compiler-core/src/dependency.rs",
"chars": 38304,
"preview": "use std::{cell::RefCell, cmp::Reverse, collections::HashMap, rc::Rc};\n\nuse crate::{Error, Result, manifest};\n\nuse ecow::"
},
{
"path": "compiler-core/src/derivation_tree.rs",
"chars": 12955,
"preview": "use crate::error::wrap;\nuse ecow::EcoString;\nuse hexpm::version::Version;\nuse im::HashSet;\nuse itertools::Itertools;\nuse"
},
{
"path": "compiler-core/src/diagnostic.rs",
"chars": 4704,
"preview": "use std::collections::HashMap;\n\nuse camino::Utf8PathBuf;\n\npub use codespan_reporting::diagnostic::{LabelStyle, Severity}"
},
{
"path": "compiler-core/src/docs/printer.rs",
"chars": 26984,
"preview": "use std::{\n collections::{HashMap, HashSet},\n ops::Deref,\n};\n\nuse ecow::{EcoString, eco_format};\nuse itertools::It"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__canonical_link.snap",
"chars": 73593,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile_with_markdown_pages(config, modules, pages,\\nCompileWit"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__constructor_with_long_types_and_many_fields.snap",
"chars": 990,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- option.gleam\npub type Option(a)\n\n"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__constructor_with_long_types_and_many_fields_that_need_splitting.snap",
"chars": 932,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- option.gleam\npub type Option(a)\n\n"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__discarded_arguments_are_not_shown.snap",
"chars": 24642,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__docs_of_a_type_constructor_are_not_used_by_the_following_function.snap",
"chars": 26385,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__function_uses_reexport_of_internal_type.snap",
"chars": 516,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- thepackage/internal.gleam\npub typ"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__function_uses_reexport_of_internal_type_in_other_module.snap",
"chars": 635,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- thepackage/internal.gleam\npub typ"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__generated_type_variables.snap",
"chars": 233,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn wibble(_a, _b,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__generated_type_variables_do_not_take_into_account_other_definitions.snap",
"chars": 328,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn wibble(_a: a, "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__generated_type_variables_mixed_with_existing_variables.snap",
"chars": 239,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn wibble(_a: b, "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__generated_type_variables_with_existing_variables_coming_afterwards.snap",
"chars": 239,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn wibble(_a, _b,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__hello_docs.snap",
"chars": 24570,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__highlight_constant_definition.snap",
"chars": 276,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub const x = 22\n\n\n--"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__highlight_custom_type.snap",
"chars": 1143,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub type Wibble(a, b)"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__highlight_function_definition.snap",
"chars": 763,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn wibble(list: L"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__highlight_opaque_custom_type.snap",
"chars": 392,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub opaque type Wibbl"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__highlight_type_alias.snap",
"chars": 422,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub type Option(a) = "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__ignored_argument_is_called_arg.snap",
"chars": 24612,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__internal_definitions_are_not_included.snap",
"chars": 23844,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__internal_type_reexport_in_different_module.snap",
"chars": 327,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nassertion_line: 1097\nexpression: output\nsnapshot_kind: text\n---\n---- SOURCE "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__internal_type_reexport_in_same_module.snap",
"chars": 292,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nassertion_line: 1083\nexpression: output\nsnapshot_kind: text\n---\n---- SOURCE "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter.snap",
"chars": 304,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nassertion_line: 1056\nexpression: output\nsnapshot_kind: text\n---\n---- SOURCE "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__internal_type_reexport_in_same_module_as_parameter_colours.snap",
"chars": 468,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nassertion_line: 1070\nexpression: output\nsnapshot_kind: text\n---\n---- SOURCE "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__link_to_type_in_different_module.snap",
"chars": 363,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dict.gleam\npub type Dict(a,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module.snap",
"chars": 382,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dict.gleam\npub type Dict(a,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__link_to_type_in_different_module_from_nested_module_with_shared_path.snap",
"chars": 375,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dynamic.gleam\npub type Dyna"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__link_to_type_in_different_package.snap",
"chars": 401,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dict.gleam\npub type Dict(a,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__link_to_type_in_same_module.snap",
"chars": 316,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub type Dict(a, b)\n\n"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__long_function_with_no_arguments_parentheses_are_not_split.snap",
"chars": 334,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn aaaaaaaaaaaaaa"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__long_function_wrapping.snap",
"chars": 26943,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__markdown_code_from_function_comment_is_trimmed.snap",
"chars": 24701,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__markdown_code_from_module_comment_is_trimmed.snap",
"chars": 23930,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__markdown_code_from_standalone_pages_is_not_trimmed.snap",
"chars": 23979,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile_with_markdown_pages(config, vec![], pages,\\nCompileWith"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__no_hex_publish.snap",
"chars": 72908,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile_with_markdown_pages(config, modules, pages,\\nCompileWit"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__no_link_to_type_in_git_dependency.snap",
"chars": 341,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dict.gleam\npub type Dict(a,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__no_link_to_type_in_path_dependency.snap",
"chars": 341,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/dict.gleam\npub type Dict(a,"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__no_links_to_prelude_types.snap",
"chars": 243,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub fn int_to_string("
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__output_of_search_data_json.snap",
"chars": 877,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: json\n---\n{\"items\":[{\"type\":\"module\",\"parentTitle\":\"gleam/option\""
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__print_qualified_names_from_other_modules.snap",
"chars": 444,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- gleam/option.gleam\n\npub type Opti"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__print_type_variables_in_function_signatures.snap",
"chars": 432,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- main.gleam\n\npub type Dict(key, va"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__public_type_reexport_in_different_internal_module.snap",
"chars": 357,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nassertion_line: 1111\nexpression: output\nsnapshot_kind: text\n---\n---- SOURCE "
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__search_item_for_constant.snap",
"chars": 858,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n------ SOURCE CODE\n\n/// Reverses a `List`, and return"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__search_item_for_custom_type.snap",
"chars": 1134,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n------ SOURCE CODE\n\n/// # The `Option` type\n/// Repre"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__search_item_for_function.snap",
"chars": 656,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n------ SOURCE CODE\n\n/// Pi is the ration between a ci"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__search_item_for_type_alias.snap",
"chars": 704,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n------ SOURCE CODE\n\n/// This is a type alias to a lis"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__tables.snap",
"chars": 24732,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: \"compile(config, modules)\"\n---\n//// app.html\n\n<!DOCTYPE html>\n<h"
},
{
"path": "compiler-core/src/docs/snapshots/gleam_core__docs__tests__use_reexport_from_other_package.snap",
"chars": 672,
"preview": "---\nsource: compiler-core/src/docs/tests.rs\nexpression: output\n---\n---- SOURCE CODE\n-- some_package/internal.gleam\npub t"
},
{
"path": "compiler-core/src/docs/source_links.rs",
"chars": 4049,
"preview": "use crate::{\n ast::SrcSpan,\n build,\n config::{PackageConfig, Repository},\n line_numbers::LineNumbers,\n pa"
},
{
"path": "compiler-core/src/docs/tests.rs",
"chars": 34701,
"preview": "use std::{\n collections::{HashMap, HashSet},\n time::SystemTime,\n};\n\nuse super::{\n Dependency, DependencyKind, D"
},
{
"path": "compiler-core/src/docs.rs",
"chars": 23761,
"preview": "mod printer;\nmod source_links;\n#[cfg(test)]\nmod tests;\n\nuse std::{collections::HashMap, time::SystemTime};\n\nuse camino::"
},
{
"path": "compiler-core/src/encryption.rs",
"chars": 1167,
"preview": "use thiserror::Error;\n\npub fn encrypt_with_passphrase(\n message: &[u8],\n passphrase: &str,\n) -> Result<String, age"
},
{
"path": "compiler-core/src/erlang/pattern.rs",
"chars": 13954,
"preview": "use ecow::eco_format;\n\nuse crate::analyse::Inferred;\n\nuse super::*;\n\npub(super) struct PatternPrinter<'a, 'env> {\n pu"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__allowed_string_escapes.snap",
"chars": 580,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"pub fn a() { \\\"\\\\n\\\" \\\"\\\\r\\\" \\\"\\\\t\\\" \\\"\\\\\\\\\\\" \\\"\\\\\\\"\\\" \\\"\\\\\\\\"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__binop_parens.snap",
"chars": 621,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n let a = 2 * {3 + 1} / 2\\n let b = 5"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__bit_pattern_shadowing.snap",
"chars": 1131,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n let code = <<\\\"hello world\\\":utf8>>\\n l"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__block_assignment.snap",
"chars": 525,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n let x = {\\n 1\\n 2\\n }\\n x\\n}\\n\"\n"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info.snap",
"chars": 501,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub const module_info = 1\\n\\npub fn main() {\\n module_in"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info_imported.snap",
"chars": 511,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\nimport some_module\\n\\npub fn main() {\\n some_module.modu"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info_imported_qualified.snap",
"chars": 515,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\nimport some_module.{module_info}\\n\\npub fn main() {\\n mo"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info_with_function_inside.snap",
"chars": 694,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn function() {\\n 1\\n}\\n\\npub const module_info = fu"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported.snap",
"chars": 542,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\nimport some_module\\n\\npub fn main() {\\n some_module.modu"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__constant_named_module_info_with_function_inside_imported_qualified.snap",
"chars": 540,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\nimport some_module.{module_info}\\n\\npub fn main() {\\n mo"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__discard_in_assert.snap",
"chars": 1102,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"pub fn x(y) {\\n let assert Ok(_) = y\\n 1\\n}\"\n---\n----- SOUR"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__dynamic.snap",
"chars": 354,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: pub type Dynamic\n---\n----- SOURCE CODE\npub type Dynamic\n\n-----"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__field_access_function_call.snap",
"chars": 747,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub type FnBox {\\n FnBox(f: fn(Int) -> Int)\\n}\\n\\npub fn m"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__field_access_function_call1.snap",
"chars": 544,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n let t = #(fn(x) { x })\\n\\n t.0(5)\\n"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__float_division_by_literal_non_zero.snap",
"chars": 458,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n 1.0 /. 2.0\\n} \"\n---\n----- SOURCE "
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__float_division_by_literal_zero.snap",
"chars": 453,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn main() {\\n 1.0 /. 0.0\\n} \"\n---\n----- SOURCE "
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__function_argument_shadowing.snap",
"chars": 598,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"pub fn main(a) {\\n Box\\n}\\n\\npub type Box {\\n Box(Int)\\n}\\n"
},
{
"path": "compiler-core/src/erlang/snapshots/gleam_core__erlang__tests__function_named_module_info.snap",
"chars": 646,
"preview": "---\nsource: compiler-core/src/erlang/tests.rs\nexpression: \"\\npub fn module_info() {\\n 1\\n}\\n\\npub fn main() {\\n mo"
}
]
// ... and 4179 more files (download for full content)
About this extraction
This page contains the full source code of the gleam-lang/gleam GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4379 files (8.4 MB), approximately 2.6M tokens, and a symbol index with 9786 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.