diff --git a/src/server/autocomplete.d b/src/server/autocomplete.d index b5382e7..24ac417 100644 --- a/src/server/autocomplete.d +++ b/src/server/autocomplete.d @@ -804,7 +804,12 @@ DSymbol*[] getSymbolsByTokenChain(T)(Scope* completionScope, if (symbols.length == 0 || symbols[0].type is null || symbols[0].type is symbols[0]) return []; else if (symbols[0].type.kind == CompletionKind.functionName) - symbols = [symbols[0].type.type]; + { + if (symbols[0].type.type is null) + symbols = []; + else + symbols = [symbols[0].type.type]; + } else symbols = [symbols[0].type]; } diff --git a/tests/tc040/file.d b/tests/tc040/file.d new file mode 100644 index 0000000..f0cb20b --- /dev/null +++ b/tests/tc040/file.d @@ -0,0 +1,11 @@ +T[] dbGet(T)(string sql) +{ +} + +void main() +{ + foreach (res; dbGet!int("select * from table")) + { + aa[res.]; + } +} diff --git a/tests/tc040/run.sh b/tests/tc040/run.sh new file mode 100755 index 0000000..b87fe2f --- /dev/null +++ b/tests/tc040/run.sh @@ -0,0 +1,4 @@ +set -e +set -u + +../../bin/dcd-client $1 file.d -c105