Patent ID: 9652358
Date: 2017-05-16
CPC Classifications: G06F

Claim:
1. A computer-implemented method comprising: receiving an output generated by a program parser for a source code file, wherein the output identifies a respective original type for each of one or more source code elements in the source code file; generating a respective widened type that is different from the respective original type for each of one or more source code elements, wherein each original type and each widened type has a respective type kind, wherein each type kind represents a class of types in a programming language of the source code file and each type kind corresponds to a specific respective analyzer for analyzing compatibility for source code elements of the type kind; wherein the source code elements include (i) a first source code element having a first original type that has a first type kind, and (ii) a second source code element having a second original type different from the first original type and that has a second type kind that is different from the first type kind, and wherein after the generating, the first source code element has a first widened type, and the first source code element and the second source code element each have a type that has the same type kind; analyzing the first source code element and the second source code element using the analyzer that is specific to the same second type kind for the first widened type and the second original type to determine whether the first widened type and the second original type having the same second type kind are incompatible; and generating static analysis results for the source code file, wherein the static analysis results reference each source code element of the one or more source code elements occurring in the static analysis results by a respective widened type name for the source code element instead of by a respective original type name of the source code element for each source code element that has a widened type, and wherein the static analysis results reference the first source code element by a first widened type name for the first widened type.