A very basic domain that we use for analyzing the real type of the values stored in a field.
A very basic domain that we use for analyzing the real type of the values stored in a field.
One instance of this domain has to be used to analyze all methods of the respective class. Only after the analysis of all methods, the information returned by fieldsWithRefinedValues is guaranteed to be correct.
This domain is not thread-safe. The methods of a class have to be analyzed sequentially. The order in which the methods are analyzed is not relevant. However, before the analysis of a org.opalj.br.Method, the method setMethodContext has to be called.
A shallow analysis that tries to refine the return types of methods.
A shallow analysis that tries to refine the return types of methods.
The analysis terminates itself when it realizes that the return type cannot be refined.
This analysis performs a simple abstract interpretation of all methods of a class to identify fields that are always assigned an object that is a subtype of the field's declared type.
This analysis performs a simple abstract interpretation of all methods of a class to identify fields that are always assigned an object that is a subtype of the field's declared type.
WE IGNORE THOSE FIELDS WHICH SEEMS TO BE ALWAYS NULL. THESE FIELDS ARE OFTEN INITIALZED - AT RUNTIME - BY SOME CODE OUTSIDE THE SCOPE OF "PURE" JAVA BASED ANALYSES. E.G., WE IGNORE THE FOLLOWING FIELDS FROM JAVA 8:
The key object to get information about the "more precise" field types.
A shallow analysis that tries to refine the return types of methods.
The key object to get information about the "more precise" return values.