From 2d4e0edee4eb2317b2179fc931397a41a5a98231 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Mon, 27 Oct 2025 14:30:24 -0400 Subject: [PATCH] [ty] Add evaluation test for auto-import including symbols in current module This shouldn't happen. And indeed, currently, this results in a sub-optimal ranking. --- .../completion-evaluation-tasks.csv | 1 + .../completion.toml | 2 ++ .../auto-import-skips-current-module/main.py | 19 +++++++++++++++++++ .../pyproject.toml | 5 +++++ .../subdir/__init__.py | 1 + .../auto-import-skips-current-module/uv.lock | 8 ++++++++ 6 files changed, 36 insertions(+) create mode 100644 crates/ty_completion_eval/truth/auto-import-skips-current-module/completion.toml create mode 100644 crates/ty_completion_eval/truth/auto-import-skips-current-module/main.py create mode 100644 crates/ty_completion_eval/truth/auto-import-skips-current-module/pyproject.toml create mode 100644 crates/ty_completion_eval/truth/auto-import-skips-current-module/subdir/__init__.py create mode 100644 crates/ty_completion_eval/truth/auto-import-skips-current-module/uv.lock diff --git a/crates/ty_completion_eval/completion-evaluation-tasks.csv b/crates/ty_completion_eval/completion-evaluation-tasks.csv index 4c5d3e35b9..01b8ca4373 100644 --- a/crates/ty_completion_eval/completion-evaluation-tasks.csv +++ b/crates/ty_completion_eval/completion-evaluation-tasks.csv @@ -1,4 +1,5 @@ name,file,index,rank +auto-import-skips-current-module,main.py,0,4 fstring-completions,main.py,0,1 higher-level-symbols-preferred,main.py,0, higher-level-symbols-preferred,main.py,1,1 diff --git a/crates/ty_completion_eval/truth/auto-import-skips-current-module/completion.toml b/crates/ty_completion_eval/truth/auto-import-skips-current-module/completion.toml new file mode 100644 index 0000000000..cbd5805f07 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-skips-current-module/completion.toml @@ -0,0 +1,2 @@ +[settings] +auto-import = true diff --git a/crates/ty_completion_eval/truth/auto-import-skips-current-module/main.py b/crates/ty_completion_eval/truth/auto-import-skips-current-module/main.py new file mode 100644 index 0000000000..4043a87617 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-skips-current-module/main.py @@ -0,0 +1,19 @@ +Kadabra = 1 + +# This is meant to reflect that auto-import +# does *not* include completions for `Kadabra`. +# That is, before a bug was fixed, completions +# would offer two variants for `Kadabra`: one +# for the current module (correct) and another +# from auto-import that would insert +# `from main import Kadabra` into this module +# (incorrect). +# +# Since the incorrect one wasn't ranked above +# the correct one, this task unfortunately +# doesn't change the evaluation results. But +# I've added it anyway in case it does in the +# future (or if we change our evaluation metric +# to something that incorporates suggestions +# after the correct one). +Kada diff --git a/crates/ty_completion_eval/truth/auto-import-skips-current-module/pyproject.toml b/crates/ty_completion_eval/truth/auto-import-skips-current-module/pyproject.toml new file mode 100644 index 0000000000..cd277d8097 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-skips-current-module/pyproject.toml @@ -0,0 +1,5 @@ +[project] +name = "test" +version = "0.1.0" +requires-python = ">=3.13" +dependencies = [] diff --git a/crates/ty_completion_eval/truth/auto-import-skips-current-module/subdir/__init__.py b/crates/ty_completion_eval/truth/auto-import-skips-current-module/subdir/__init__.py new file mode 100644 index 0000000000..a205414e7b --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-skips-current-module/subdir/__init__.py @@ -0,0 +1 @@ +AbraKadabra = 1 diff --git a/crates/ty_completion_eval/truth/auto-import-skips-current-module/uv.lock b/crates/ty_completion_eval/truth/auto-import-skips-current-module/uv.lock new file mode 100644 index 0000000000..a4937d10d3 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-skips-current-module/uv.lock @@ -0,0 +1,8 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "test" +version = "0.1.0" +source = { virtual = "." }