From dddaab2e00cdadf60cad19fe7cfe972ac1b86db1 Mon Sep 17 00:00:00 2001 From: ksss Date: Fri, 5 Jun 2026 23:35:17 +0900 Subject: [PATCH 1/2] Include inline source files in --save-expectations When a target is configured with `inline: true`, the inline source files were not collected into `all_files`, so `--save-expectations` produced an empty YAML even when diagnostics were reported. Co-Authored-By: Claude Opus 4.7 --- lib/steep/drivers/check.rb | 1 + test/cli_test.rb | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/steep/drivers/check.rb b/lib/steep/drivers/check.rb index b86cb5571..c414335c5 100644 --- a/lib/steep/drivers/check.rb +++ b/lib/steep/drivers/check.rb @@ -395,6 +395,7 @@ def print_typecheck_result(project:, diagnostic_notifications:, error_messages:) loader = Services::FileLoader.new(base_dir: project.base_dir) all_files = project.targets.each.with_object(Set[]) do |target, set| set.merge(loader.load_changes(target.source_pattern, command_line_patterns, changes: {}).each_key) + set.merge(loader.load_changes(target.inline_source_pattern, command_line_patterns, changes: {}).each_key) set.merge(loader.load_changes(target.signature_pattern, changes: {}).each_key) end.to_a diff --git a/test/cli_test.rb b/test/cli_test.rb index 34b1f8d7c..e09324c8e 100644 --- a/test/cli_test.rb +++ b/test/cli_test.rb @@ -911,6 +911,31 @@ def test_check_inline_with_command_line_pattern end end + def test_check_inline_save_expectations + in_tmpdir do + (current_dir + "Steepfile").write(<<-EOF) +target :app do + check "lib", inline: true +end + EOF + + (current_dir + "lib").mkdir + (current_dir + "lib/foo.rb").write(<<-EOF) +1 + "2" + EOF + + stdout, status = sh(*steep, "check", "--save-expectations") + + assert_predicate status, :success?, stdout + assert_match(/Saved expectations in steep_expectations\.yml/, stdout) + + expectations = YAML.load_file(current_dir + "steep_expectations.yml") + refute_empty expectations + assert_equal ["lib/foo.rb"], expectations.map {|entry| entry["file"] } + refute_empty expectations[0]["diagnostics"] + end + end + def test_check_expression_success stdout, status = sh(*steep, "check", "-e", "1 + 2") From 53a0eecdd1556d338a52df8618785b384670fb31 Mon Sep 17 00:00:00 2001 From: ksss Date: Fri, 5 Jun 2026 23:54:05 +0900 Subject: [PATCH 2/2] Regenerate RBS signatures for the new test Co-Authored-By: Claude Opus 4.7 --- sig/test/cli_test.rbs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sig/test/cli_test.rbs b/sig/test/cli_test.rbs index f3e51eb5d..4401adb33 100644 --- a/sig/test/cli_test.rbs +++ b/sig/test/cli_test.rbs @@ -77,6 +77,8 @@ class CLITest < Minitest::Test def test_check_inline_with_command_line_pattern: () -> untyped + def test_check_inline_save_expectations: () -> untyped + def test_check_expression_success: () -> untyped def test_check_expression_failure: () -> untyped