Combining Static Analysis With Deep Learning For Type Inference And Code Editing