diff --git a/src/server/autocomplete.d b/src/server/autocomplete.d index f88c21a..b5382e7 100644 --- a/src/server/autocomplete.d +++ b/src/server/autocomplete.d @@ -801,20 +801,12 @@ DSymbol*[] getSymbolsByTokenChain(T)(Scope* completionScope, if (shouldSwapWithType(completionType, symbols[0].kind, 0, tokens.length - 1)) { - if (symbols.length == 0) + if (symbols.length == 0 || symbols[0].type is null || symbols[0].type is symbols[0]) return []; - if (symbols[0].type is null || symbols[0].type is symbols[0]) - { - symbols = []; - } - else if (symbols[0].type.kind == CompletionKind.functionName) - { - symbols = [symbols[0].type.type]; - } - else - { - symbols = [symbols[0].type]; - } + else if (symbols[0].type.kind == CompletionKind.functionName) + symbols = [symbols[0].type.type]; + else + symbols = [symbols[0].type]; } loop: for (size_t i = 1; i < tokens.length; i++) diff --git a/tests/tc039/expected.txt b/tests/tc039/expected.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/tc039/file.d b/tests/tc039/file.d new file mode 100644 index 0000000..d16800e --- /dev/null +++ b/tests/tc039/file.d @@ -0,0 +1,4 @@ +auto genFirstSet(Rule* r) +{ +switch (r.parts[0].) +} diff --git a/tests/tc039/run.sh b/tests/tc039/run.sh new file mode 100755 index 0000000..475c7bf --- /dev/null +++ b/tests/tc039/run.sh @@ -0,0 +1,6 @@ +set -e +set -u + +../../bin/dcd-client $1 file.d -c48 > actual.txt +diff actual.txt expected.txt +