Calum Grant
dd75e5bce3
Merge pull request #877 from hvitved/csharp/matches-handle
...
C#: Use `matchesHandle()` instead of `getLabel()`
2019-02-06 11:02:09 +00:00
semmle-qlci
4b81ffab96
Merge pull request #869 from hvitved/csharp/autoformat
...
Approved by calumgrant
2019-02-05 16:35:10 +00:00
Tom Hvitved
37c55750f7
Merge pull request #873 from calumgrant/cs/format-getresource-strings
...
C#: Fix FP in cs/format-argument-unused
2019-02-05 17:12:04 +01:00
Tom Hvitved
23b9b1eb72
C#: Cache Splits::toString()
2019-02-05 15:01:25 +01:00
Tom Hvitved
8c7c582e07
C#: Move successor types into own file
2019-02-05 14:27:09 +01:00
Tom Hvitved
0992e01f91
C#: Move Splitting and Reachability modules into own file
2019-02-05 14:27:09 +01:00
Tom Hvitved
3503e9b57e
C#: Move PreSsa module into own file
2019-02-05 14:27:09 +01:00
Tom Hvitved
5306d1ea0d
C#: Move PreBasicBlocks module into own file
2019-02-05 13:41:50 +01:00
Tom Hvitved
83fb32828f
C#: Move NonReturning module into own file
2019-02-05 11:50:03 +01:00
Tom Hvitved
64539b0263
C#: Move Completion.qll
2019-02-05 11:45:33 +01:00
Tom Hvitved
0211837e24
C#: Remove getUrl() predicate
2019-02-05 11:07:13 +01:00
Tom Hvitved
d829d98165
Merge branch 'master' into csharp/autoformat
2019-02-05 10:37:42 +01:00
Tom Hvitved
13503d068c
C#: Use matchesHandle() instead of getLabel()
2019-02-04 16:20:47 +01:00
Tom Hvitved
b4b6fdd12b
C#: Revert recent change to AccessorCall
...
The recent change to `AccessorCall` on dd99525566 resulted
in some bad join-orders, so I have (partly) reverted them. This means that the issues
orignally addressed by that change are now reintroduced, and I plan to instead apply a
fix to the CFG, which--unlike the original fix--should be able to handle multi-property-tuple
assignments.
2019-02-04 15:14:18 +01:00
calum
7d17724cae
C#: The empty string is not considered a format string for this query.
2019-02-04 12:53:12 +00:00
calum
eb0036172e
C#: Add test for false-positive.
2019-02-04 12:30:43 +00:00
calum
f8870e78e7
C#: Fix test.
2019-02-04 11:51:04 +00:00
Tom Hvitved
910995af90
C#: Autoformat QL code
2019-02-04 10:32:30 +01:00
Robert Marsh
e1d289ffb4
Merge pull request #759 from calumgrant/cs/interface-tostring
...
C#: Remove FPs from cs/call-to-object-tostring
2019-01-31 12:03:49 -08:00
Robert Marsh
f3b4cb4640
Merge pull request #848 from calumgrant/cs/lgtm-suppress-alerts
...
C#: Suppress cs/catch-of-all-exceptions
2019-01-31 12:03:26 -08:00
calum
5144f89a5b
C#: Fix dataflow.
2019-01-31 19:53:46 +00:00
calum
92eb857dac
C#: Add documentation.
2019-01-31 17:46:28 +00:00
calum
4274854f0f
C#: Refactor TCallableFlowSinkDelegateArg
2019-01-31 16:03:23 +00:00
calum
713c7a8c20
C#: Refactor TCallableFlowSourceDelegateArg
2019-01-31 15:42:09 +00:00
calum
18ff4583ef
C#: Refactor TCallableFlowSourceArg to remove callable.
2019-01-31 12:05:26 +00:00
Felicity Chapman
54242f4009
Merge pull request #849 from jf205/locations
...
Update links to QL help topics in GH repo files (SD-2999)
2019-01-30 11:06:22 +00:00
Calum Grant
9b7f4a8ce5
Merge pull request #845 from hvitved/csharp/get-type-non-null
...
C#: Teach guards library about `object.GetType()`
2019-01-30 10:08:05 +00:00
Calum Grant
722402fc89
Merge pull request #825 from hvitved/csharp/cfg/splitting-performance
...
C#: Improve performance of CFG split set computation
2019-01-30 10:05:25 +00:00
james
7cc1442ecb
Update link text
2019-01-30 09:44:07 +00:00
james
a98aae0a24
update links to lgtm.com/docs
2019-01-30 08:02:03 +00:00
james
81137aa7b4
update links to locations in .ql files
2019-01-30 08:02:02 +00:00
james
9d1a050f35
update links to locations in .qll files
2019-01-30 08:01:49 +00:00
calum
f39daaeeab
C#: Suppress cs/catch-of-all-exceptions
2019-01-29 18:22:12 +00:00
calum
d63df71a8a
C#: Fix merge conflict.
2019-01-29 18:15:33 +00:00
calum
423513169f
C#: Address review comments. Introduce Member::isEffectivelyPublic() because isEffectivelyPrivate and isEffectivelyInternal are almost always used together.
2019-01-29 18:05:29 +00:00
calum
931b6b4ee5
C#: Exclude interfaces and abstract classes from cs/call-to-object-tostring
2019-01-29 18:04:26 +00:00
Tom Hvitved
16d3399039
C#: Teach guards library about object.GetType()
2019-01-29 16:40:36 +01:00
Tom Hvitved
87bb4a1d56
C#: Add null guard test involving GetType()
2019-01-29 16:32:13 +01:00
Calum Grant
c86e6bd6ff
Merge pull request #826 from hvitved/csharp/autobuild/dotnet-install-script-cleanup
...
C#: Cleanup dotnet install script after installation in autobuilder
2019-01-28 16:33:55 +00:00
Calum Grant
eef1abfa69
Merge pull request #743 from hvitved/csharp/dataflow-splitting
...
C#: Teach data flow library about CFG splitting
2019-01-28 16:31:24 +00:00
Tom Hvitved
86721ff800
C#: Add more documentation to SuccSplits module
2019-01-28 14:12:17 +01:00
Tom Hvitved
ed8112a538
C#: Cleanup dotnet install script after installation in autobuilder
2019-01-25 15:26:03 +01:00
Tom Hvitved
50522caa6e
C#: Improve performance of CFG split set computation
...
Rewrite the predicate `succSplits()` and the construction of the IPA type `TSplits`.
The two are now mutually dependent, see more in the comment for the module
`SuccSplits`.
2019-01-25 14:35:56 +01:00
Tom Hvitved
078becc57b
C#: Address review comments
2019-01-25 12:06:34 +01:00
Calum Grant
c6d0600e76
Merge pull request #798 from hvitved/csharp/accessor-calls
...
C#: Redefine `AccessorCall`
2019-01-24 10:21:32 +00:00
calum
420c943cce
C#: Fix FP in cs/call-to-object-tostring
2019-01-23 16:14:25 +00:00
Tom Hvitved
779039b8bb
C#: Address review comments
2019-01-23 08:56:39 +01:00
calum
790db3ab67
C#: Address review comments.
2019-01-22 17:29:58 +00:00
calum
c9ffb38e4b
C#: Add sources and sinks in Winforms. Update some queries with new sources and sinks.
2019-01-18 15:42:44 +00:00
Tom Hvitved
dd99525566
C#: Redefine AccessorCall
...
The syntactic node assiociated with accessor calls was previously always the
underlying member access. For example, in
```
x.Prop = y.Prop;
```
the implicit call to `x.set_Prop()` was at the syntactic node `x.Prop`, while the
implicit call to `y.get_Prop()` was at the syntactic node `y.Prop`.
However, this breaks the invariant that arguments to calls dominate the call itself,
as the argument `y.Prop` for the implicit `value` parameter in `x.set_Prop()` will
be evaluated after the call (the left-hand side in an assignment is evaluated before
the right-hand side).
The solution is to redefine the access call to `x.set_Prop()` to point to the whole
assignment `x.Prop = y.Prop`, instead of the access `x.Prop`. For reads, we still want
to associate the accessor call with the member access.
A corner case arises when multiple setters are called in a tuple assignment:
```
(x.Prop1, x.Prop2) = (0, 1)
```
In this case, we cannot associate the assignment with both `x.set_Prop1()` and
`x.set_Prop2()`, so we instead revert to using the underlying member accesses as
before.
2019-01-18 13:56:23 +01:00