-
Notifications
You must be signed in to change notification settings - Fork 1.8k
C#: CSV-based flow summaries #6003
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
f4f9d96
to
af8adee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
I'll add the Coverage.ql, and then modify the CSV coverage report workflow to handle C# too.
af8adee
to
992acaa
Compare
992acaa
to
4b5612a
Compare
4b5612a
to
3f6beaf
Compare
"My.Qltest;D;false;StepPropertySetter;(System.Object);;Argument[0];Property[My.Qltest.D.Property] of Argument[-1];value", | ||
"My.Qltest;D;false;StepElementGetter;();;Element of Argument[-1];ReturnValue;value", | ||
"My.Qltest;D;false;StepElementSetter;(System.Object);;Argument[0];Element of Argument[-1];value", | ||
"My.Qltest;D;false;Apply;(System.Func<My.Qltest.D.Apply.<0>,My.Qltest.D.Apply.<1>>,My.Qltest.D.Apply.<1>);;Argument[1];Parameter[0] of Argument[0];value", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would look nicer with S
and T
instead of My.Qltest.D.Apply.<0>
.
| Unification.cs:9:10:9:11 | T3 | Unification.cs:38:11:38:22 | Nested<System.Int32>+NestedA<String> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:38:11:38:22 | Nested<System.Int32>+NestedA<T11> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:38:11:38:22 | Nested<System.String>+NestedA<Int32> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:38:11:38:22 | Nested<System.String>+NestedA<T11> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:39:11:39:17 | Nested<>+NestedB | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:39:11:39:17 | Nested<System.Int32>+NestedB | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:39:11:39:17 | Nested<System.String>+NestedB | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:41:22:41:33 | Nested<>+NestedB+NestedC<T12> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:41:22:41:33 | Nested<System.Int32>+NestedB+NestedC<Boolean> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:41:22:41:33 | Nested<System.Int32>+NestedB+NestedC<T12> | | ||
| Unification.cs:9:10:9:11 | T3 | Unification.cs:41:22:41:33 | Nested<System.String>+NestedB+NestedC<Decimal> | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not all type names show up here with fully qualified names. It looks like nested constructed generics are not handled properly.
| overrides.H<>.M<S>(TA, S) | overrides.I2<TA>.M<S>(TA, S) | implements | | ||
| overrides.Outer<>.A10.M<T>(Inner) | overrides.Outer<>.I6.M<T>(Inner) | implements | | ||
| overrides.G.M<S>(string, S) | overrides.I2<System.String>.M<S>(string, S) | implements | | ||
| overrides.H<>.M<S>(TA, S) | overrides.I2<overrides.H<>.<0>>.M<S>(TA, S) | implements | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm surprised to see TA
being changed to overrides.H<>.<0>
, but S
not being changed. Also, shouldn't all instances of TA
be replaced by overrides.H<>.<0>
?
Wouldn't it make sense to store the fully qualified names in the DB (if there's an easy built in way of getting it from Roslyn)? I did a quick search, and couldn't find any APIs for getting it, but Here are some examples of type names in Roslyn tests: |
We discussed this in person: Our conclusion was to not use the fully qualified name returned at runtime, and also not match exactly how Roslyn represent qualified names. We're actually quite close to the one implemented by Roslyn, here are some samples of the representation used by us:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
https://jenkins.internal.semmle.com/job/Changes/job/CSharp-Differences/1138/https://jenkins.internal.semmle.com/job/Changes/job/CSharp-Differences/1145/