mirror of
https://github.com/github/codeql.git
synced 2025-12-18 18:10:39 +01:00
This introduces a `MethodRefExpr` node synthesized out of `DotSyntaxCallExpr` under the `LookupExpr` hierarchy. This means that much like ```free_function(1, 2)``` is a `CallExpr` with `getFunction` giving a `DeclRefExpr`, ```foo.method(1, 2)``` is now a `CallExpr` with `getFunction` giving a `MethodRefExpr`. `ApplyExpr::getStaticTarget` has been made work with it (as well as `ConstructorRefCallExpr` which for the moment has been left where it is), a new `MethodApplyExpr` has been introduced deriving from it, and control and data flow libraries have adapted. A small but was fixed in `qlgen` where the default constructor for DB types was not correctly subtracting derived IPA types depending on the order of definitions in `schema.yml`. There are still some occurrences of `DotSyntaxCallExpr`, and as already mentioned the other `SelfApply` class (`ConstructorRefCallExpr`) was left alone. Their treatment is left for a future PR.