Skip to content

Commit b927aad

Browse files
committed
C#: Address review comments related to record structs.
1 parent 6c1bb4a commit b927aad

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

csharp/ql/lib/semmle/code/csharp/Type.qll

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ class SimpleType extends ValueType, @simple_type {
455455
* A `record` like type.
456456
* This can be either a `class` or a `struct`.
457457
*/
458-
abstract class RecordType extends ValueOrRefType {
458+
class RecordType extends ValueOrRefType {
459459
RecordType() { this.isRecord() }
460460
}
461461

@@ -730,8 +730,6 @@ class Struct extends ValueType, @struct_type {
730730
* ```
731731
*/
732732
class RecordStruct extends RecordType, Struct {
733-
RecordStruct() { this.isRecord() }
734-
735733
override string getAPrimaryQlClass() { result = "RecordStruct" }
736734
}
737735

@@ -797,8 +795,6 @@ deprecated class Record extends Class {
797795

798796
/** Gets the clone method of this record. */
799797
RecordCloneMethod getCloneMethod() { result = this.getAMember() }
800-
801-
override string getAPrimaryQlClass() { result = "Record" }
802798
}
803799

804800
/**

csharp/ql/test/library-tests/csharp9/PrintAst.expected

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ ParenthesizedPattern.cs:
776776
# 26| 0: [TypeMention] string
777777
# 26| 2: [IntLiteral] 5
778778
Record.cs:
779-
# 4| [Record,RecordClass] Person
779+
# 4| [RecordClass] Person
780780
# 4| 11: [NEOperator] !=
781781
#-----| 2: (Parameters)
782782
# 4| 0: [Parameter] left
@@ -806,7 +806,7 @@ Record.cs:
806806
# 9| 1: [TupleExpr] (..., ...)
807807
# 9| 0: [ParameterAccess] access to parameter first
808808
# 9| 1: [ParameterAccess] access to parameter last
809-
# 12| [Record,RecordClass] Teacher
809+
# 12| [RecordClass] Teacher
810810
# 12| 12: [NEOperator] !=
811811
#-----| 2: (Parameters)
812812
# 12| 0: [Parameter] left
@@ -834,7 +834,7 @@ Record.cs:
834834
# 17| 4: [AssignExpr] ... = ...
835835
# 17| 0: [PropertyCall] access to property Subject
836836
# 17| 1: [ParameterAccess] access to parameter sub
837-
# 20| [Record,RecordClass] Student
837+
# 20| [RecordClass] Student
838838
# 20| 12: [NEOperator] !=
839839
#-----| 2: (Parameters)
840840
# 20| 0: [Parameter] left
@@ -862,7 +862,7 @@ Record.cs:
862862
# 24| 4: [AssignExpr] ... = ...
863863
# 24| 0: [PropertyCall] access to property Level
864864
# 24| 1: [ParameterAccess] access to parameter level
865-
# 27| [Record,RecordClass] Person1
865+
# 27| [RecordClass] Person1
866866
# 27| 12: [NEOperator] !=
867867
#-----| 2: (Parameters)
868868
# 27| 0: [Parameter] left
@@ -889,7 +889,7 @@ Record.cs:
889889
# 27| 4: [Setter] set_LastName
890890
#-----| 2: (Parameters)
891891
# 27| 0: [Parameter] value
892-
# 29| [Record,RecordClass] Teacher1
892+
# 29| [RecordClass] Teacher1
893893
# 29| 13: [NEOperator] !=
894894
#-----| 2: (Parameters)
895895
# 29| 0: [Parameter] left
@@ -913,7 +913,7 @@ Record.cs:
913913
# 29| 4: [Setter] set_Subject
914914
#-----| 2: (Parameters)
915915
# 29| 0: [Parameter] value
916-
# 32| [Record,RecordClass] Student1
916+
# 32| [RecordClass] Student1
917917
# 32| 13: [NEOperator] !=
918918
#-----| 2: (Parameters)
919919
# 32| 0: [Parameter] left
@@ -937,7 +937,7 @@ Record.cs:
937937
# 32| 4: [Setter] set_Level
938938
#-----| 2: (Parameters)
939939
# 32| 0: [Parameter] value
940-
# 35| [Record,RecordClass] Pet
940+
# 35| [RecordClass] Pet
941941
# 35| 12: [NEOperator] !=
942942
#-----| 2: (Parameters)
943943
# 35| 0: [Parameter] left
@@ -963,7 +963,7 @@ Record.cs:
963963
# 38| -1: [TypeAccess] access to type Console
964964
# 38| 0: [TypeMention] Console
965965
# 38| 0: [StringLiteral] "Shredding furniture"
966-
# 41| [Record,RecordClass] Dog
966+
# 41| [RecordClass] Dog
967967
# 41| 12: [NEOperator] !=
968968
#-----| 2: (Parameters)
969969
# 41| 0: [Parameter] left
@@ -1002,7 +1002,7 @@ Record.cs:
10021002
# 50| 0: [MethodCall] call to method ToString
10031003
# 50| -1: [LocalVariableAccess] access to local variable s
10041004
# 50| 1: [StringLiteral] " is a dog"
1005-
# 54| [Record,RecordClass] R1
1005+
# 54| [RecordClass] R1
10061006
# 54| 12: [NEOperator] !=
10071007
#-----| 2: (Parameters)
10081008
# 54| 0: [Parameter] left
@@ -1022,7 +1022,7 @@ Record.cs:
10221022
# 54| 4: [Setter] set_A
10231023
#-----| 2: (Parameters)
10241024
# 54| 0: [Parameter] value
1025-
# 56| [Record,RecordClass] R2
1025+
# 56| [RecordClass] R2
10261026
# 56| 13: [NEOperator] !=
10271027
#-----| 2: (Parameters)
10281028
# 56| 0: [Parameter] left

csharp/ql/test/library-tests/dataflow/fields/J.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ private void M1()
3131

3232
private void M2()
3333
{
34-
var o = Source<object>(1);
34+
var o = Source<object>(2);
3535
var r1 = new RecordStruct(o, null);
36-
Sink(r1.Prop1); // $ hasValueFlow=1
36+
Sink(r1.Prop1); // $ hasValueFlow=2
3737
Sink(r1.Prop2); // no flow
3838
}
3939

0 commit comments

Comments
 (0)