diff options
| author | vitya-smirnov <[email protected]> | 2026-04-24 16:03:26 +0300 |
|---|---|---|
| committer | vitya-smirnov <[email protected]> | 2026-04-24 16:28:40 +0300 |
| commit | e6fc8cf51aebe04dea1ad4e51ce332bed7181690 (patch) | |
| tree | fa45b4099f103c941ff84453851cb30154b19013 /contrib/tools/python3/Python/structmember.c | |
| parent | 52e702a66e34e2a53e005bec3e22b5d198c09139 (diff) | |
YQL-20380: Introduce LSP correct name resolution
Previous name resolution in a completion engine was poor, because it
just mapped a name for an expression and so redefinition was not working.
For example, a table name inference did not work on the following query:
```yql
$x = '/a' $x = $x || 'b'; $x = $x || 'c'; FROM plato.$x SELECT #;
```
But now it works. And also there was an issue with names visibility,
because names were resolved like for `letrec`, not `let`. It was fixed.
The new name resolution analyses the whole query and uses not only a name
for an identifier lookup, but also its position in text. Each named node
entry now classified as definition and a reference. There is a way to map
each reference to a definition. In future it will be a basis for named nodes
"go to definition", "find references", "rename" LSP methods.
commit_hash:ceeecbe2a59aa4d82ceb59ef930af5659dcd5ff7
Diffstat (limited to 'contrib/tools/python3/Python/structmember.c')
0 files changed, 0 insertions, 0 deletions
