Result: done. A .to_string() or .clone() on a plain text literal is refused (NK1301, ADR-282 D30); about 270 files migrated. Files: crates/nikaia-std/src/tools/bounds_walk.nika crates/nikaia-std/src/tools/build_eval.nika crates/nikaia-std/src/tools/check_access.nika crates/nikaia-std/src/tools/check_arguments.nika crates/nikaia-std/src/tools/check_arith.nika crates/nikaia-std/src/tools/check_arm_leaves.nika crates/nikaia-std/src/tools/check_arms.nika crates/nikaia-std/src/tools/check_attributes.nika crates/nikaia-std/src/tools/check_binds.nika crates/nikaia-std/src/tools/check_boxes.nika crates/nikaia-std/src/tools/check_buildtime.nika crates/nikaia-std/src/tools/check_buildtime2.nika crates/nikaia-std/src/tools/check_collect.nika crates/nikaia-std/src/tools/check_compare.nika crates/nikaia-std/src/tools/check_consts.nika crates/nikaia-std/src/tools/check_core_args.nika crates/nikaia-std/src/tools/check_core_call.nika crates/nikaia-std/src/tools/check_core_call_on.nika crates/nikaia-std/src/tools/check_core_comptime.nika crates/nikaia-std/src/tools/check_core_expr.nika crates/nikaia-std/src/tools/check_core_flow.nika crates/nikaia-std/src/tools/check_core_leaves.nika crates/nikaia-std/src/tools/check_core_method.nika crates/nikaia-std/src/tools/check_core_ops.nika crates/nikaia-std/src/tools/check_core_pilot.nika crates/nikaia-std/src/tools/check_core_places.nika crates/nikaia-std/src/tools/check_core_stmt.nika crates/nikaia-std/src/tools/check_crossings.nika crates/nikaia-std/src/tools/check_decls.nika crates/nikaia-std/src/tools/check_defaults.nika crates/nikaia-std/src/tools/check_doors.nika crates/nikaia-std/src/tools/check_expect.nika crates/nikaia-std/src/tools/check_exprs.nika crates/nikaia-std/src/tools/check_extern.nika crates/nikaia-std/src/tools/check_facts.nika crates/nikaia-std/src/tools/check_fallible.nika crates/nikaia-std/src/tools/check_fields.nika crates/nikaia-std/src/tools/check_function.nika crates/nikaia-std/src/tools/check_host.nika crates/nikaia-std/src/tools/check_imports.nika crates/nikaia-std/src/tools/check_items.nika crates/nikaia-std/src/tools/check_kinds.nika crates/nikaia-std/src/tools/check_lambdas.nika crates/nikaia-std/src/tools/check_literals.nika crates/nikaia-std/src/tools/check_lookups.nika crates/nikaia-std/src/tools/check_main.nika crates/nikaia-std/src/tools/check_may_fail.nika crates/nikaia-std/src/tools/check_members.nika crates/nikaia-std/src/tools/check_name_in_text.nika crates/nikaia-std/src/tools/check_names.nika crates/nikaia-std/src/tools/check_narrow.nika crates/nikaia-std/src/tools/check_notes.nika crates/nikaia-std/src/tools/check_numbers3.nika crates/nikaia-std/src/tools/check_numbers4.nika crates/nikaia-std/src/tools/check_numbers5.nika crates/nikaia-std/src/tools/check_overflow.nika crates/nikaia-std/src/tools/check_patterns.nika crates/nikaia-std/src/tools/check_pauses.nika crates/nikaia-std/src/tools/check_places.nika crates/nikaia-std/src/tools/check_program.nika crates/nikaia-std/src/tools/check_reads.nika crates/nikaia-std/src/tools/check_references.nika crates/nikaia-std/src/tools/check_refusals.nika crates/nikaia-std/src/tools/check_reports.nika crates/nikaia-std/src/tools/check_send.nika crates/nikaia-std/src/tools/check_simd.nika crates/nikaia-std/src/tools/check_state.nika crates/nikaia-std/src/tools/check_takes.nika crates/nikaia-std/src/tools/check_task_pauses.nika crates/nikaia-std/src/tools/check_values.nika crates/nikaia-std/src/tools/check_walks.nika crates/nikaia-std/src/tools/check_widen.nika crates/nikaia-std/src/tools/check_with.nika crates/nikaia-std/src/tools/emit_core_args.nika crates/nikaia-std/src/tools/emit_core_calls.nika crates/nikaia-std/src/tools/emit_core_flow.nika crates/nikaia-std/src/tools/emit_core_leaves.nika crates/nikaia-std/src/tools/emit_core_match.nika crates/nikaia-std/src/tools/emit_core_places.nika crates/nikaia-std/src/tools/emit_core_reads.nika crates/nikaia-std/src/tools/emit_core_types.nika crates/nikaia-std/src/tools/emit_entry.nika crates/nikaia-std/src/tools/emit_function.nika crates/nikaia-std/src/tools/emit_stmt.nika crates/nikaia-std/src/tools/fold_bound.nika crates/nikaia-std/src/tools/logic_horn.nika crates/nikaia-std/src/tools/lowered/bounds_walk.rs crates/nikaia-std/src/tools/lowered/build_eval.rs crates/nikaia-std/src/tools/lowered/check_access.rs crates/nikaia-std/src/tools/lowered/check_arguments.rs crates/nikaia-std/src/tools/lowered/check_arith.rs crates/nikaia-std/src/tools/lowered/check_arm_leaves.rs crates/nikaia-std/src/tools/lowered/check_arms.rs crates/nikaia-std/src/tools/lowered/check_attributes.rs crates/nikaia-std/src/tools/lowered/check_binds.rs crates/nikaia-std/src/tools/lowered/check_boxes.rs crates/nikaia-std/src/tools/lowered/check_buildtime.rs crates/nikaia-std/src/tools/lowered/check_buildtime2.rs crates/nikaia-std/src/tools/lowered/check_collect.rs crates/nikaia-std/src/tools/lowered/check_compare.rs crates/nikaia-std/src/tools/lowered/check_consts.rs crates/nikaia-std/src/tools/lowered/check_core_args.rs crates/nikaia-std/src/tools/lowered/check_core_call.rs crates/nikaia-std/src/tools/lowered/check_core_call_on.rs crates/nikaia-std/src/tools/lowered/check_core_comptime.rs crates/nikaia-std/src/tools/lowered/check_core_expr.rs crates/nikaia-std/src/tools/lowered/check_core_flow.rs crates/nikaia-std/src/tools/lowered/check_core_leaves.rs crates/nikaia-std/src/tools/lowered/check_core_method.rs crates/nikaia-std/src/tools/lowered/check_core_ops.rs crates/nikaia-std/src/tools/lowered/check_core_pilot.rs crates/nikaia-std/src/tools/lowered/check_core_places.rs crates/nikaia-std/src/tools/lowered/check_core_stmt.rs crates/nikaia-std/src/tools/lowered/check_crossings.rs crates/nikaia-std/src/tools/lowered/check_decls.rs crates/nikaia-std/src/tools/lowered/check_defaults.rs crates/nikaia-std/src/tools/lowered/check_doors.rs crates/nikaia-std/src/tools/lowered/check_expect.rs crates/nikaia-std/src/tools/lowered/check_exprs.rs crates/nikaia-std/src/tools/lowered/check_extern.rs crates/nikaia-std/src/tools/lowered/check_facts.rs crates/nikaia-std/src/tools/lowered/check_fallible.rs crates/nikaia-std/src/tools/lowered/check_fields.rs crates/nikaia-std/src/tools/lowered/check_function.rs crates/nikaia-std/src/tools/lowered/check_host.rs crates/nikaia-std/src/tools/lowered/check_imports.rs crates/nikaia-std/src/tools/lowered/check_items.rs crates/nikaia-std/src/tools/lowered/check_kinds.rs crates/nikaia-std/src/tools/lowered/check_lambdas.rs crates/nikaia-std/src/tools/lowered/check_literals.rs crates/nikaia-std/src/tools/lowered/check_lookups.rs crates/nikaia-std/src/tools/lowered/check_main.rs crates/nikaia-std/src/tools/lowered/check_may_fail.rs crates/nikaia-std/src/tools/lowered/check_members.rs crates/nikaia-std/src/tools/lowered/check_name_in_text.rs crates/nikaia-std/src/tools/lowered/check_names.rs crates/nikaia-std/src/tools/lowered/check_narrow.rs crates/nikaia-std/src/tools/lowered/check_notes.rs crates/nikaia-std/src/tools/lowered/check_numbers3.rs crates/nikaia-std/src/tools/lowered/check_numbers4.rs crates/nikaia-std/src/tools/lowered/check_numbers5.rs crates/nikaia-std/src/tools/lowered/check_overflow.rs crates/nikaia-std/src/tools/lowered/check_patterns.rs crates/nikaia-std/src/tools/lowered/check_pauses.rs crates/nikaia-std/src/tools/lowered/check_places.rs crates/nikaia-std/src/tools/lowered/check_program.rs crates/nikaia-std/src/tools/lowered/check_reads.rs crates/nikaia-std/src/tools/lowered/check_references.rs crates/nikaia-std/src/tools/lowered/check_refusals.rs crates/nikaia-std/src/tools/lowered/check_reports.rs crates/nikaia-std/src/tools/lowered/check_send.rs crates/nikaia-std/src/tools/lowered/check_simd.rs crates/nikaia-std/src/tools/lowered/check_state.rs crates/nikaia-std/src/tools/lowered/check_takes.rs crates/nikaia-std/src/tools/lowered/check_task_pauses.rs crates/nikaia-std/src/tools/lowered/check_values.rs crates/nikaia-std/src/tools/lowered/check_walks.rs crates/nikaia-std/src/tools/lowered/check_widen.rs crates/nikaia-std/src/tools/lowered/check_with.rs crates/nikaia-std/src/tools/lowered/emit_core_args.rs crates/nikaia-std/src/tools/lowered/emit_core_calls.rs crates/nikaia-std/src/tools/lowered/emit_core_flow.rs crates/nikaia-std/src/tools/lowered/emit_core_leaves.rs crates/nikaia-std/src/tools/lowered/emit_core_match.rs crates/nikaia-std/src/tools/lowered/emit_core_places.rs crates/nikaia-std/src/tools/lowered/emit_core_reads.rs crates/nikaia-std/src/tools/lowered/emit_core_types.rs crates/nikaia-std/src/tools/lowered/emit_entry.rs crates/nikaia-std/src/tools/lowered/emit_function.rs crates/nikaia-std/src/tools/lowered/emit_stmt.rs crates/nikaia-std/src/tools/lowered/fold_bound.rs crates/nikaia-std/src/tools/lowered/logic_horn.rs crates/nikaia-std/src/tools/lowered/maps.rs crates/nikaia-std/src/tools/lowered/prover_loops.rs crates/nikaia-std/src/tools/lowered/text_tiers.rs crates/nikaia-std/src/tools/lowered/traits.rs crates/nikaia-std/src/tools/lowered/ty.rs crates/nikaia-std/src/tools/lowered/type_rules.rs crates/nikaia-std/src/tools/lowered/types.rs crates/nikaia-std/src/tools/lowered/views.rs crates/nikaia-std/src/tools/maps.nika crates/nikaia-std/src/tools/prover_loops.nika crates/nikaia-std/src/tools/text_tiers.nika crates/nikaia-std/src/tools/traits.nika crates/nikaia-std/src/tools/ty.nika crates/nikaia-std/src/tools/type_rules.nika crates/nikaia-std/src/tools/types.nika crates/nikaia-std/src/tools/views.nika crates/nikaia/tests/it/borrowed_subject.rs crates/nikaia/tests/it/btree_set_walks.rs crates/nikaia/tests/it/bytes.rs crates/nikaia/tests/it/c_library.rs crates/nikaia/tests/it/catch_handler.rs crates/nikaia/tests/it/coalesce_needs_a_null.rs crates/nikaia/tests/it/concatenation.rs crates/nikaia/tests/it/defects_found_running.rs crates/nikaia/tests/it/describing.rs crates/nikaia/tests/it/error_sums.rs crates/nikaia/tests/it/errors_lowering.rs crates/nikaia/tests/it/file_paths.rs crates/nikaia/tests/it/handed_over.rs crates/nikaia/tests/it/lent_arguments.rs crates/nikaia/tests/it/map_entries.rs crates/nikaia/tests/it/map_reads.rs crates/nikaia/tests/it/match_on_element.rs crates/nikaia/tests/it/members_written_down.rs crates/nikaia/tests/it/mut_parameter_parts.rs crates/nikaia/tests/it/new_error_reaches_a_catch.rs crates/nikaia/tests/it/nullable.rs crates/nikaia/tests/it/option_defaults.rs crates/nikaia/tests/it/own_methods.rs crates/nikaia/tests/it/reserved_below.rs crates/nikaia/tests/it/result_source.rs crates/nikaia/tests/it/selfhosting_defects.rs crates/nikaia/tests/it/seq_reductions.rs crates/nikaia/tests/it/tasks.rs crates/nikaia/tests/it/tethers.rs crates/nikaia/tests/it/text_tiers.rs crates/nikaia/tests/it/text_views.rs crates/nikaia/tests/it/traits.rs crates/nikaia/tests/it/typecheck.rs crates/nikaia/tests/it/vec_in_place.rs crates/nikaia/tests/it/views_handed_back.rs crates/nikaia/tests/it/views_kept.rs crates/rs2nika/convert/nikaia.derived crates/rs2nika/convert/src/main.nika crates/rs2nika/convert/tests/bytes_while.stdout crates/rs2nika/convert/tests/corpus.in/attributes/after.nika crates/rs2nika/convert/tests/corpus.in/defaults/after.nika crates/rs2nika/convert/tests/corpus.in/function/after.nika crates/rs2nika/convert/tests/corpus.in/program/after.nika crates/rs2nika/convert/tests/some_match.stdout examples/c-library/nikaia.derived examples/c-library/src/main.nika examples/http/nikaia.derived examples/http/src/main.nika scripts/agent.nika scripts/batch.nika scripts/gate.nika scripts/tokenspeed.nika tests/accepted/678_pair_longest.nika tests/accepted/694_map_fields_owned.nika tests/accepted/694_map_parameters_owned.nika tests/accepted/704_match_owned_text.nika tests/accepted/734_changed_arm_binding.nika tests/build-time/src/own_methods.nika tests/compiler/tests/a_let_mut_of_a_mut_lists_element_is_a_mutable_view.nika tests/compiler/tests/a_let_mut_of_a_mut_maps_entry_is_a_mutable_view.nika tests/compiler/tests/a_let_mut_of_a_mut_views_option_field_is_a_mutable_view.nika tests/compiler/tests/a_let_mut_of_a_place_that_is_not_mut_is_refused.nika tests/compiler/tests/a_list_field_filled_from_a_function_of_literals_stays_owned.nika tests/compiler/tests/a_mixed_let_goes_where_the_position_takes_it.nika tests/compiler/tests/a_pattern_handed_to_strip_in_a_loop_is_only_read.nika tests/compiler/tests/a_tuple_let_over_a_lent_lambda_parameter_reads_its_parts.nika tests/compiler/tests/a_value_beside_a_view_of_an_option_is_lent_with_it.nika tests/compiler/tests/a_view_in_a_local_struct_that_never_leaves_is_not_kept.nika tests/compiler/tests/a_view_into_a_nullable_text_parameter_only_read_is_not_wrapped.nika tests/compiler/tests/a_view_into_a_text_parameter_only_read_is_not_wrapped.nika tests/compiler/tests/a_view_into_a_text_parameter_read_alone_is_not_wrapped.nika tests/compiler/tests/an_annotated_mixed_let_fed_by_a_choice_wraps_each_arm.nika tests/compiler/tests/an_enum_is_passed_by_value_from_a_view_and_an_owner.nika tests/compiler/tests/an_optional_parameter_and_a_match_of_text_run.nika tests/compiler/tests/owned_text_is_lent_to_strip_and_a_literal_to_contains.nika tests/compiler/tests/to_string_of_a_view_fills_a_string.nika tests/language/src/borrowed_subject.nika tests/language/src/concatenation.nika tests/language/src/defects_found_running.nika tests/language/src/error_sums.nika tests/language/src/error_types.nika tests/language/src/errors_lowering.nika tests/language/src/handed_over.nika tests/language/src/kept_copies.nika tests/language/src/list_patterns.nika tests/language/src/nullable.nika tests/language/src/reserved_below.nika tests/language/src/supervision.nika tests/language/src/task_scope.nika tests/language/src/traits.nika tests/language/src/tuple_let.nika tests/language/src/views_across_files.nika tests/language/src/views_handed_back.nika tests/compiler/tests/literal_to_string_refused.nika tests/compiler/tests/literal_to_string_refused.stderr Commit: A call on a text literal that adds nothing is refused (NK1301, ADR-282 D30) Fixes: #853 Tests: tests/compiler –both-settings 100 ok; it guard set + 36 touched modules 707 ok, 1 fail (c_library, stale examples/c-library nikaia.derived, regenerated, passes by build); clippy clean; pre-push-check clean Deviation: new test not run against unfixed compiler (the refusal does not exist there, so it prints instead of refusing); Rust tests that need owned text from a literal use f”x” (no String::from in the language); NK1189-style help of NK1171 now says f”x” instead of “x”.clone() Found: D31 leaves a literal bound with a String annotation a view (moves of it are not NK2105); 22 Rust test expectations rewritten to f”…” sources. No String::from exists (NK1171). Needs: none Gate: green Pushed: 0c17885c0603caef1927819ebdb30bbf150104fe

This site is open source. Improve this page.