{"push_id":2316268823,"size":1,"distinct_size":1,"ref":"refs/heads/PointsToAnalysis","head":"b38931e0b315dfe889d69e2d28d010e19ee84b9e","before":"6ddd97817e8b12f3948025ff84b458b7209a2f49","commits":[{"sha":"b38931e0b315dfe889d69e2d28d010e19ee84b9e","author":{"name":"Manish Vasani","email":"2b0af14bfa9d82d2c1d13c628982f971d2f5c59a@microsoft.com"},"message":"Implement PointsTo analysis to track locations of all symbols and instances. Primary changes are:\n\n1. Change all the analyses to track values for `AnalysisEntity` instances instead of `ISymbol`. An analysis entity is essentially a symbol (or an allocation or an indexed location) which also has an associated `InstanceLocation` where the entity resides. So for example, each local and parameter symbol with have a single unique `AnalysisEntity` instance, while each member symbol(fields/properties/events/methods) will have separate `AnalysisEntity` instances for every instance within which it is contained.\n\n2. Add support for `PointsToAnalysis`, which tracks the locations that can be pointed to by analysis entities and operations. Note that this points to location is different from the `InstanceLocation` mentioned above, which indicate the location at which an analysis entity _resides_. On the other hand, PointsToAnalysis tracks the location that is _pointed to_ by reference types and allocation operations. Constants and value types always have a value of `PointsToAbstractValue.NoLocation`, indicating that they cannot point to any location.\n\n3. Improve precision of `StringContentsAnalysis` used by DFA rule `CA2100` (Review SQL queries for security vulnerabilities) by using the points to analysis result. This analysis can now track string values of members of named types. Note that were very minimal changes to `StringContentsAnalysis` in this PR, as the base `DataFlowOperationVisitor` tracks using and manipulating the points to analysis data. This should enable future analyses to consume the points to analysis result to improve precision, without having to deal with points to analysis data.\n\n4. Write new unit tests for ``CA2100 for the underlying points to analysis.","distinct":true,"url":"https://api.github.com/repos/mavasani/roslyn-analyzers/commits/b38931e0b315dfe889d69e2d28d010e19ee84b9e"}]}
{"actor":{"display_login":"mavasani"}}