Quoting from this academic paper: Syntactic and Semantic Prediction in Dynamic Languages:
IntelliSense is practically based on the knowledge of variables type. Hence the symbols describing variables have to contain their type if it's known and if it could be resolved Moreover in dynamic languages one variable can carry different type instance in different parts of the code and in different program executions. Also the variable can be initiated dynamically, and its type can be known only at runtime. Therefore the symbol should contain some list of possible types resolved within semantic analysis. But in general it cannot be resolved definitely in dynamic languages; even single program execution won't help.
Where can I find more resources on this, I am interested especially on the emphasized statements in the above block-quote, eventually some statistics on the rate of prediction on static analysis of code.