C#: Add colliding method ID tests

This commit is contained in:
Tamas Vajk
2021-06-03 10:54:45 +02:00
parent 8e6dd51f50
commit d044b15533
17 changed files with 798 additions and 527 deletions

View File

@@ -0,0 +1,130 @@
[INVALID_KEY] predicate methods(@method id, string name, @type declaring_type_id, @type_or_ref type_id, @method unbound_id): The key set {id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 4:
Tuple 1 in row 28: (828,"M",827,1087,813)
Tuple 2 in row 29: (828,"M",827,1087,1135)
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 827: @"(294)<(366)>;type". The ID may expand to @"{@"{@"{@";namespace"}.Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"{@";namespace"}.System;namespace"}.Int32;type"}>;type"
Relevant element: Full ID for 1087: @"(365);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"};typeRef"
Relevant element: Full ID for 813: @"(365) (294).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@";namespace"}.Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 827: @"(294)<(366)>;type". The ID may expand to @"{@"{@"{@";namespace"}.Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"{@";namespace"}.System;namespace"}.Int32;type"}>;type"
Relevant element: Full ID for 1087: @"(365);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"};typeRef"
Relevant element: Full ID for 1135: @"(365) (294).M((296) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@";namespace"}.Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
[INVALID_KEY] predicate constructors(@constructor id, string name, @type declaring_type_id, @constructor unbound_id): The key set {id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 3:
Tuple 1 in row 14: (897,"Nested",830,332)
Tuple 2 in row 15: (897,"Nested",830,1143)
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 830: @"(827).Nested;type". The ID may expand to @"{@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.Nested;type"
Relevant element: Full ID for 332: @"(297)((296) p1);constructor". The ID may expand to @"{@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.Nested;type"}({@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}_0;typeparameter"} p1);constructor"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 830: @"(827).Nested;type". The ID may expand to @"{@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.Nested;type"
Relevant element: Full ID for 1143: @"(297)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {name, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 34: (1005,"p1",1083,0,0,828,1138)
Tuple 2 in row 35: (1005,"p1",1083,0,0,828,1348)
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1138: @"(1135)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1348: @"(813)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {name, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 42: (1031,"p1",1083,0,0,897,335)
Tuple 2 in row 43: (1031,"p1",1083,0,0,897,1146)
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 335: @"(332)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 1146: @"(1143)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {name, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 36: (1006,"p2",1083,1,0,828,1140)
Tuple 2 in row 37: (1006,"p2",1083,1,0,828,1350)
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1140: @"(1135)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1350: @"(813)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {index, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 34: (1005,"p1",1083,0,0,828,1138)
Tuple 2 in row 35: (1005,"p1",1083,0,0,828,1348)
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1138: @"(1135)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1348: @"(813)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {index, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 42: (1031,"p1",1083,0,0,897,335)
Tuple 2 in row 43: (1031,"p1",1083,0,0,897,1146)
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 335: @"(332)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 1146: @"(1143)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
[INVALID_KEY_SET] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {index, parent_id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 36: (1006,"p2",1083,1,0,828,1140)
Tuple 2 in row 37: (1006,"p2",1083,1,0,828,1350)
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1140: @"(1135)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1350: @"(813)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
[INVALID_KEY] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 34: (1005,"p1",1083,0,0,828,1138)
Tuple 2 in row 35: (1005,"p1",1083,0,0,828,1348)
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1138: @"(1135)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1005: @"(828)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1348: @"(813)_0;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_0;parameter"
[INVALID_KEY] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 36: (1006,"p2",1083,1,0,828,1140)
Tuple 2 in row 37: (1006,"p2",1083,1,0,828,1350)
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1140: @"(1135)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1006: @"(828)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 828: @"(365) (827).M((366) p1,(366) p2);method". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Void;type"} {@"{@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}<{@"{@"(111).System;namespace"}.Int32;type"}>;type"}.M({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1,{@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p2);method"
Relevant element: Full ID for 1350: @"(813)_1;parameter". The ID may expand to @"{@"{@"{@"(111).System;namespace"}.Void;type"} {@"{@"(111).Methods;namespace"}.TestCollidingMethods`1;type"}.M({@"{@"(111).System;namespace"}.Int32;type"} p1,{@"{@"(111).System;namespace"}.Int32;type"} p2);method"}_1;parameter"
[INVALID_KEY] predicate params(@parameter id, string name, @type_or_ref type_id, int index, int mode, @parameterizable parent_id, @parameter unbound_id): The key set {id} does not functionally determine all fields.
Here is a pair of tuples that agree on the key set but differ at index 6:
Tuple 1 in row 42: (1031,"p1",1083,0,0,897,335)
Tuple 2 in row 43: (1031,"p1",1083,0,0,897,1146)
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 335: @"(332)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(130).TestCollidingMethods`1;type"}_0;typeparameter"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1031: @"(897)_0;parameter". The ID may expand to @"{@"{@"{@"(294)<(366)>;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"
Relevant element: Full ID for 1083: @"(366);typeRef". The ID may expand to @"{@"{@"{@";namespace"}.System;namespace"}.Int32;type"};typeRef"
Relevant element: Full ID for 897: @"(830)((366) p1);constructor". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}<{@"(112).Int32;type"}>;type"}.Nested;type"}({@"{@"{@";namespace"}.System;namespace"}.Int32;type"} p1);constructor"
Relevant element: Full ID for 1146: @"(1143)_0;parameter". The ID may expand to @"{@"{@"{@"(130).TestCollidingMethods`1;type"}.Nested;type"}({@"{@"(111).System;namespace"}.Int32;type"} p1);constructor"}_0;parameter"

View File

@@ -1,12 +1,12 @@
| methods.cs:118:44:118:55 | call to method ToInt32 | 0 | methods.cs:118:52:118:54 | "0" |
| methods.cs:127:34:127:52 | call to method Slice | 0 | methods.cs:127:34:127:40 | access to local variable strings |
| methods.cs:127:34:127:52 | call to method Slice | 1 | methods.cs:127:48:127:48 | 1 |
| methods.cs:127:34:127:52 | call to method Slice | 2 | methods.cs:127:51:127:51 | 2 |
| methods.cs:129:42:129:52 | call to method ToInt32 | 0 | methods.cs:129:42:129:42 | access to local variable s |
| methods.cs:132:13:132:34 | call to method ToInt32 | 0 | methods.cs:132:32:132:33 | "" |
| methods.cs:132:13:132:34 | call to method ToInt32 | -1 | methods.cs:132:13:132:22 | access to type Extensions |
| methods.cs:134:13:134:49 | call to method ToBool | 0 | methods.cs:134:31:134:36 | "true" |
| methods.cs:134:13:134:49 | call to method ToBool | 1 | methods.cs:134:39:134:48 | delegate creation of type Func<String,Boolean> |
| methods.cs:134:13:134:49 | call to method ToBool | -1 | methods.cs:134:13:134:22 | access to type Extensions |
| methods.cs:180:20:180:39 | call to method SkipTwo | 0 | methods.cs:180:20:180:23 | access to parameter list |
| methods.cs:180:20:180:39 | call to method SkipTwo | 1 | methods.cs:180:38:180:38 | access to parameter i |
| methods.cs:119:44:119:55 | call to method ToInt32 | 0 | methods.cs:119:52:119:54 | "0" |
| methods.cs:128:34:128:52 | call to method Slice | 0 | methods.cs:128:34:128:40 | access to local variable strings |
| methods.cs:128:34:128:52 | call to method Slice | 1 | methods.cs:128:48:128:48 | 1 |
| methods.cs:128:34:128:52 | call to method Slice | 2 | methods.cs:128:51:128:51 | 2 |
| methods.cs:130:42:130:52 | call to method ToInt32 | 0 | methods.cs:130:42:130:42 | access to local variable s |
| methods.cs:133:13:133:34 | call to method ToInt32 | 0 | methods.cs:133:32:133:33 | "" |
| methods.cs:133:13:133:34 | call to method ToInt32 | -1 | methods.cs:133:13:133:22 | access to type Extensions |
| methods.cs:135:13:135:49 | call to method ToBool | 0 | methods.cs:135:31:135:36 | "true" |
| methods.cs:135:13:135:49 | call to method ToBool | 1 | methods.cs:135:39:135:48 | delegate creation of type Func<String,Boolean> |
| methods.cs:135:13:135:49 | call to method ToBool | -1 | methods.cs:135:13:135:22 | access to type Extensions |
| methods.cs:181:20:181:39 | call to method SkipTwo | 0 | methods.cs:181:20:181:23 | access to parameter list |
| methods.cs:181:20:181:39 | call to method SkipTwo | 1 | methods.cs:181:38:181:38 | access to parameter i |

View File

@@ -1 +1 @@
| methods.cs:9:21:9:24 | Swap |
| methods.cs:10:21:10:24 | Swap |

View File

@@ -1 +1 @@
| methods.cs:28:28:28:33 | Divide |
| methods.cs:29:28:29:33 | Divide |

View File

@@ -1 +1 @@
| methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:50:11:50:25 | TestOverloading |

View File

@@ -1 +1 @@
| methods.cs:49:11:49:25 | TestOverloading | methods.cs:57:21:57:21 | F | Object |
| methods.cs:50:11:50:25 | TestOverloading | methods.cs:58:21:58:21 | F | Object |

View File

@@ -1,22 +1,30 @@
| methods.cs:16:14:16:17 | Main | methods.cs:9:21:9:24 | Swap | methods.cs:6:18:6:24 | TestRef |
| methods.cs:16:14:16:17 | Main | methods.cs:46:28:46:36 | WriteLine | methods.cs:6:18:6:24 | TestRef |
| methods.cs:34:14:34:17 | Main | methods.cs:28:28:28:33 | Divide | methods.cs:25:18:25:24 | TestOut |
| methods.cs:34:14:34:17 | Main | methods.cs:46:28:46:36 | WriteLine | methods.cs:25:18:25:24 | TestOut |
| methods.cs:52:21:52:21 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:57:21:57:21 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:62:21:62:21 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:67:21:67:21 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:72:21:72:24 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:77:21:77:21 | F | methods.cs:46:28:46:36 | WriteLine | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:52:21:52:21 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:57:21:57:21 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:62:21:62:21 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:67:21:67:21 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:72:21:72:24 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:72:21:72:24 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:82:14:82:17 | Main | methods.cs:77:21:77:21 | F | methods.cs:49:11:49:25 | TestOverloading |
| methods.cs:118:27:118:37 | CallToInt32 | methods.cs:99:27:99:33 | ToInt32 | methods.cs:96:25:96:34 | Extensions |
| methods.cs:124:21:124:24 | Main | methods.cs:99:27:99:33 | ToInt32 | methods.cs:121:18:121:31 | TestExtensions |
| methods.cs:124:21:124:24 | Main | methods.cs:104:28:104:33 | ToBool | methods.cs:121:18:121:31 | TestExtensions |
| methods.cs:124:21:124:24 | Main | methods.cs:109:27:109:34 | Slice | methods.cs:121:18:121:31 | TestExtensions |
| methods.cs:178:67:178:76 | SkipTwoInt | methods.cs:173:65:173:74 | SkipTwo | methods.cs:166:18:166:47 | TestDefaultExtensionParameters |
| methods.cs:17:14:17:17 | Main | methods.cs:10:21:10:24 | Swap | methods.cs:7:18:7:24 | TestRef |
| methods.cs:17:14:17:17 | Main | methods.cs:47:28:47:36 | WriteLine | methods.cs:7:18:7:24 | TestRef |
| methods.cs:35:14:35:17 | Main | methods.cs:29:28:29:33 | Divide | methods.cs:26:18:26:24 | TestOut |
| methods.cs:35:14:35:17 | Main | methods.cs:47:28:47:36 | WriteLine | methods.cs:26:18:26:24 | TestOut |
| methods.cs:53:21:53:21 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:58:21:58:21 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:63:21:63:21 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:68:21:68:21 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:73:21:73:24 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:78:21:78:21 | F | methods.cs:47:28:47:36 | WriteLine | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:53:21:53:21 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:58:21:58:21 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:63:21:63:21 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:68:21:68:21 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:73:21:73:24 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:73:21:73:24 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:83:14:83:17 | Main | methods.cs:78:21:78:21 | F | methods.cs:50:11:50:25 | TestOverloading |
| methods.cs:119:27:119:37 | CallToInt32 | methods.cs:100:27:100:33 | ToInt32 | methods.cs:97:25:97:34 | Extensions |
| methods.cs:125:21:125:24 | Main | methods.cs:100:27:100:33 | ToInt32 | methods.cs:122:18:122:31 | TestExtensions |
| methods.cs:125:21:125:24 | Main | methods.cs:105:28:105:33 | ToBool | methods.cs:122:18:122:31 | TestExtensions |
| methods.cs:125:21:125:24 | Main | methods.cs:110:27:110:34 | Slice | methods.cs:122:18:122:31 | TestExtensions |
| methods.cs:179:67:179:76 | SkipTwoInt | methods.cs:174:65:174:74 | SkipTwo | methods.cs:167:18:167:47 | TestDefaultExtensionParameters |
| methods.cs:190:21:190:25 | Calls | methods.cs:187:21:187:21 | M | methods.cs:185:18:185:40 | TestCollidingMethods<> |
| methods.cs:190:21:190:25 | Calls | methods.cs:187:21:187:21 | M | methods.cs:185:18:185:40 | TestCollidingMethods<> |
| methods.cs:190:21:190:25 | Calls | methods.cs:188:21:188:21 | M | methods.cs:185:18:185:40 | TestCollidingMethods<> |
| methods.cs:190:21:190:25 | Calls | methods.cs:188:21:188:21 | M | methods.cs:185:18:185:40 | TestCollidingMethods<> |
| methods.cs:203:20:203:25 | Nested | methods.cs:202:20:202:25 | Nested | methods.cs:200:22:200:27 | Nested |
| methods.cs:203:20:203:25 | Nested | methods.cs:202:20:202:25 | Nested | methods.cs:200:22:200:27 | Nested |
| methods.cs:203:20:203:25 | Nested | methods.cs:203:20:203:25 | Nested | methods.cs:200:22:200:27 | Nested |
| methods.cs:203:20:203:25 | Nested | methods.cs:203:20:203:25 | Nested | methods.cs:200:22:200:27 | Nested |

View File

@@ -1,2 +1,2 @@
| methods.cs:9:21:9:24 | Swap | methods.cs:9:34:9:34 | x |
| methods.cs:9:21:9:24 | Swap | methods.cs:9:45:9:45 | y |
| methods.cs:10:21:10:24 | Swap | methods.cs:10:34:10:34 | x |
| methods.cs:10:21:10:24 | Swap | methods.cs:10:45:10:45 | y |

View File

@@ -1,4 +1,4 @@
| methods.cs:28:28:28:33 | Divide | methods.cs:28:39:28:39 | x |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:46:28:46 | y |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:57:28:62 | result |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:73:28:81 | remainder |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:39:29:39 | x |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:46:29:46 | y |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:57:29:62 | result |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:73:29:81 | remainder |

View File

@@ -1,2 +1,2 @@
| methods.cs:45:28:45:32 | Write | Object[] |
| methods.cs:45:28:45:32 | Write | String |
| methods.cs:46:28:46:32 | Write | Object[] |
| methods.cs:46:28:46:32 | Write | String |

View File

@@ -1,7 +1,7 @@
| methods.cs:145:40:145:40 | c | methods.cs:145:44:145:44 | 1 | 1 |
| methods.cs:145:51:145:51 | d | methods.cs:145:55:145:55 | 2 | 2 |
| methods.cs:145:65:145:65 | e | methods.cs:145:69:145:77 | ... + ... | ab |
| methods.cs:153:45:153:45 | x | methods.cs:153:49:153:53 | "abc" | abc |
| methods.cs:153:63:153:63 | y | methods.cs:153:67:153:78 | object creation of type Double | 0 |
| methods.cs:159:36:159:36 | y | methods.cs:159:40:159:40 | 0 | 0 |
| methods.cs:159:36:159:36 | y | methods.cs:159:40:159:40 | 0 | 0 |
| methods.cs:146:40:146:40 | c | methods.cs:146:44:146:44 | 1 | 1 |
| methods.cs:146:51:146:51 | d | methods.cs:146:55:146:55 | 2 | 2 |
| methods.cs:146:65:146:65 | e | methods.cs:146:69:146:77 | ... + ... | ab |
| methods.cs:154:45:154:45 | x | methods.cs:154:49:154:53 | "abc" | abc |
| methods.cs:154:63:154:63 | y | methods.cs:154:67:154:78 | object creation of type Double | 0 |
| methods.cs:160:36:160:36 | y | methods.cs:160:40:160:40 | 0 | 0 |
| methods.cs:160:36:160:36 | y | methods.cs:160:40:160:40 | 0 | 0 |

View File

@@ -1,2 +1,2 @@
| methods.cs:157:40:157:40 | b | methods.cs:157:44:157:45 | 12 | 12 |
| methods.cs:157:55:157:55 | c | methods.cs:157:59:157:70 | object creation of type Double | 0 |
| methods.cs:158:40:158:40 | b | methods.cs:158:44:158:45 | 12 | 12 |
| methods.cs:158:55:158:55 | c | methods.cs:158:59:158:70 | object creation of type Double | 0 |

View File

@@ -1 +1 @@
| methods.cs:162:13:162:15 | value |
| methods.cs:163:13:163:15 | value |

View File

@@ -1,43 +1,59 @@
| methods.cs:9:21:9:24 | Swap | methods.cs:9:34:9:34 | x |
| methods.cs:9:21:9:24 | Swap | methods.cs:9:45:9:45 | y |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:39:28:39 | x |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:46:28:46 | y |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:57:28:62 | result |
| methods.cs:28:28:28:33 | Divide | methods.cs:28:73:28:81 | remainder |
| methods.cs:45:28:45:32 | Write | methods.cs:45:41:45:43 | fmt |
| methods.cs:45:28:45:32 | Write | methods.cs:45:62:45:65 | args |
| methods.cs:46:28:46:36 | WriteLine | methods.cs:46:45:46:47 | fmt |
| methods.cs:46:28:46:36 | WriteLine | methods.cs:46:66:46:69 | args |
| methods.cs:57:21:57:21 | F | methods.cs:57:30:57:30 | x |
| methods.cs:62:21:62:21 | F | methods.cs:62:27:62:27 | x |
| methods.cs:67:21:67:21 | F | methods.cs:67:30:67:30 | x |
| methods.cs:72:21:72:24 | F | methods.cs:72:28:72:28 | x |
| methods.cs:72:21:72:24 | F | methods.cs:72:28:72:28 | x |
| methods.cs:72:21:72:24 | F | methods.cs:72:28:72:28 | x |
| methods.cs:77:21:77:21 | F | methods.cs:77:30:77:30 | x |
| methods.cs:77:21:77:21 | F | methods.cs:77:40:77:40 | y |
| methods.cs:99:27:99:33 | ToInt32 | methods.cs:99:35:99:47 | s |
| methods.cs:99:27:99:33 | ToInt32 | methods.cs:99:47:99:47 | s |
| methods.cs:104:28:104:33 | ToBool | methods.cs:104:47:104:47 | s |
| methods.cs:104:28:104:33 | ToBool | methods.cs:104:69:104:69 | f |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:36:109:50 | source |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:45:109:50 | source |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:57:109:61 | index |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:57:109:61 | index |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:68:109:72 | count |
| methods.cs:109:27:109:34 | Slice | methods.cs:109:68:109:72 | count |
| methods.cs:141:14:141:20 | Method1 | methods.cs:141:26:141:26 | x |
| methods.cs:141:14:141:20 | Method1 | methods.cs:141:33:141:33 | y |
| methods.cs:145:14:145:20 | Method2 | methods.cs:145:26:145:26 | a |
| methods.cs:145:14:145:20 | Method2 | methods.cs:145:33:145:33 | b |
| methods.cs:145:14:145:20 | Method2 | methods.cs:145:40:145:40 | c |
| methods.cs:145:14:145:20 | Method2 | methods.cs:145:51:145:51 | d |
| methods.cs:145:14:145:20 | Method2 | methods.cs:145:65:145:65 | e |
| methods.cs:168:27:168:30 | Plus | methods.cs:168:41:168:44 | left |
| methods.cs:168:27:168:30 | Plus | methods.cs:168:51:168:55 | right |
| methods.cs:173:65:173:74 | SkipTwo | methods.cs:173:76:173:126 | list |
| methods.cs:173:65:173:74 | SkipTwo | methods.cs:173:123:173:126 | list |
| methods.cs:173:65:173:74 | SkipTwo | methods.cs:173:133:173:133 | i |
| methods.cs:173:65:173:74 | SkipTwo | methods.cs:173:133:173:133 | i |
| methods.cs:178:67:178:76 | SkipTwoInt | methods.cs:178:127:178:130 | list |
| methods.cs:178:67:178:76 | SkipTwoInt | methods.cs:178:137:178:137 | i |
| methods.cs:10:21:10:24 | Swap | methods.cs:10:34:10:34 | x |
| methods.cs:10:21:10:24 | Swap | methods.cs:10:45:10:45 | y |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:39:29:39 | x |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:46:29:46 | y |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:57:29:62 | result |
| methods.cs:29:28:29:33 | Divide | methods.cs:29:73:29:81 | remainder |
| methods.cs:46:28:46:32 | Write | methods.cs:46:41:46:43 | fmt |
| methods.cs:46:28:46:32 | Write | methods.cs:46:62:46:65 | args |
| methods.cs:47:28:47:36 | WriteLine | methods.cs:47:45:47:47 | fmt |
| methods.cs:47:28:47:36 | WriteLine | methods.cs:47:66:47:69 | args |
| methods.cs:58:21:58:21 | F | methods.cs:58:30:58:30 | x |
| methods.cs:63:21:63:21 | F | methods.cs:63:27:63:27 | x |
| methods.cs:68:21:68:21 | F | methods.cs:68:30:68:30 | x |
| methods.cs:73:21:73:24 | F | methods.cs:73:28:73:28 | x |
| methods.cs:73:21:73:24 | F | methods.cs:73:28:73:28 | x |
| methods.cs:73:21:73:24 | F | methods.cs:73:28:73:28 | x |
| methods.cs:78:21:78:21 | F | methods.cs:78:30:78:30 | x |
| methods.cs:78:21:78:21 | F | methods.cs:78:40:78:40 | y |
| methods.cs:100:27:100:33 | ToInt32 | methods.cs:100:35:100:47 | s |
| methods.cs:100:27:100:33 | ToInt32 | methods.cs:100:47:100:47 | s |
| methods.cs:105:28:105:33 | ToBool | methods.cs:105:47:105:47 | s |
| methods.cs:105:28:105:33 | ToBool | methods.cs:105:69:105:69 | f |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:36:110:50 | source |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:45:110:50 | source |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:57:110:61 | index |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:57:110:61 | index |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:68:110:72 | count |
| methods.cs:110:27:110:34 | Slice | methods.cs:110:68:110:72 | count |
| methods.cs:142:14:142:20 | Method1 | methods.cs:142:26:142:26 | x |
| methods.cs:142:14:142:20 | Method1 | methods.cs:142:33:142:33 | y |
| methods.cs:146:14:146:20 | Method2 | methods.cs:146:26:146:26 | a |
| methods.cs:146:14:146:20 | Method2 | methods.cs:146:33:146:33 | b |
| methods.cs:146:14:146:20 | Method2 | methods.cs:146:40:146:40 | c |
| methods.cs:146:14:146:20 | Method2 | methods.cs:146:51:146:51 | d |
| methods.cs:146:14:146:20 | Method2 | methods.cs:146:65:146:65 | e |
| methods.cs:169:27:169:30 | Plus | methods.cs:169:41:169:44 | left |
| methods.cs:169:27:169:30 | Plus | methods.cs:169:51:169:55 | right |
| methods.cs:174:65:174:74 | SkipTwo | methods.cs:174:76:174:126 | list |
| methods.cs:174:65:174:74 | SkipTwo | methods.cs:174:123:174:126 | list |
| methods.cs:174:65:174:74 | SkipTwo | methods.cs:174:133:174:133 | i |
| methods.cs:174:65:174:74 | SkipTwo | methods.cs:174:133:174:133 | i |
| methods.cs:179:67:179:76 | SkipTwoInt | methods.cs:179:127:179:130 | list |
| methods.cs:179:67:179:76 | SkipTwoInt | methods.cs:179:137:179:137 | i |
| methods.cs:187:21:187:21 | M | methods.cs:187:25:187:26 | p1 |
| methods.cs:187:21:187:21 | M | methods.cs:187:25:187:26 | p1 |
| methods.cs:187:21:187:21 | M | methods.cs:187:25:187:26 | p1 |
| methods.cs:187:21:187:21 | M | methods.cs:187:33:187:34 | p2 |
| methods.cs:187:21:187:21 | M | methods.cs:187:33:187:34 | p2 |
| methods.cs:187:21:187:21 | M | methods.cs:187:33:187:34 | p2 |
| methods.cs:187:21:187:21 | M | methods.cs:188:27:188:28 | p1 |
| methods.cs:187:21:187:21 | M | methods.cs:188:35:188:36 | p2 |
| methods.cs:188:21:188:21 | M | methods.cs:187:25:187:26 | p1 |
| methods.cs:188:21:188:21 | M | methods.cs:187:33:187:34 | p2 |
| methods.cs:188:21:188:21 | M | methods.cs:188:27:188:28 | p1 |
| methods.cs:188:21:188:21 | M | methods.cs:188:27:188:28 | p1 |
| methods.cs:188:21:188:21 | M | methods.cs:188:27:188:28 | p1 |
| methods.cs:188:21:188:21 | M | methods.cs:188:35:188:36 | p2 |
| methods.cs:188:21:188:21 | M | methods.cs:188:35:188:36 | p2 |
| methods.cs:188:21:188:21 | M | methods.cs:188:35:188:36 | p2 |

View File

@@ -1,7 +1,7 @@
| methods.cs:145:40:145:40 | c | methods.cs:145:44:145:44 | 1 | Method2(int, int, int, int, string) |
| methods.cs:145:51:145:51 | d | methods.cs:145:55:145:55 | 2 | Method2(int, int, int, int, string) |
| methods.cs:145:65:145:65 | e | methods.cs:145:69:145:77 | ... + ... | Method2(int, int, int, int, string) |
| methods.cs:168:51:168:55 | right | methods.cs:168:59:168:59 | 0 | Plus(int, int) |
| methods.cs:173:133:173:133 | i | methods.cs:173:137:173:137 | 1 | SkipTwo<T>(IEnumerable<T>, int) |
| methods.cs:173:133:173:133 | i | methods.cs:173:137:173:137 | 1 | SkipTwo<int>(IEnumerable<Int32>, int) |
| methods.cs:178:137:178:137 | i | methods.cs:178:141:178:141 | 1 | SkipTwoInt(IEnumerable<Int32>, int) |
| methods.cs:146:40:146:40 | c | methods.cs:146:44:146:44 | 1 | Method2(int, int, int, int, string) |
| methods.cs:146:51:146:51 | d | methods.cs:146:55:146:55 | 2 | Method2(int, int, int, int, string) |
| methods.cs:146:65:146:65 | e | methods.cs:146:69:146:77 | ... + ... | Method2(int, int, int, int, string) |
| methods.cs:169:51:169:55 | right | methods.cs:169:59:169:59 | 0 | Plus(int, int) |
| methods.cs:174:133:174:133 | i | methods.cs:174:137:174:137 | 1 | SkipTwo<T>(IEnumerable<T>, int) |
| methods.cs:174:133:174:133 | i | methods.cs:174:137:174:137 | 1 | SkipTwo<int>(IEnumerable<Int32>, int) |
| methods.cs:179:137:179:137 | i | methods.cs:179:141:179:141 | 1 | SkipTwoInt(IEnumerable<Int32>, int) |

View File

@@ -1,53 +1,44 @@
methods.cs:
# 3| [NamespaceDeclaration] namespace ... { ... }
# 6| 1: [Class] TestRef
# 9| 5: [Method] Swap
# 9| -1: [TypeMention] Void
# 4| [NamespaceDeclaration] namespace ... { ... }
# 7| 1: [Class] TestRef
# 10| 5: [Method] Swap
# 10| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 9| 0: [Parameter] x
# 9| -1: [TypeMention] int
# 9| 1: [Parameter] y
# 9| -1: [TypeMention] int
# 10| 4: [BlockStmt] {...}
# 11| 0: [LocalVariableDeclStmt] ... ...;
# 11| 0: [LocalVariableDeclAndInitExpr] Int32 temp = ...
# 11| -1: [TypeMention] int
# 11| 0: [LocalVariableAccess] access to local variable temp
# 11| 1: [ParameterAccess] access to parameter x
# 12| 1: [ExprStmt] ...;
# 12| 0: [AssignExpr] ... = ...
# 12| 0: [ParameterAccess] access to parameter x
# 12| 1: [ParameterAccess] access to parameter y
# 13| 2: [ExprStmt] ...;
# 10| 0: [Parameter] x
# 10| -1: [TypeMention] int
# 10| 1: [Parameter] y
# 10| -1: [TypeMention] int
# 11| 4: [BlockStmt] {...}
# 12| 0: [LocalVariableDeclStmt] ... ...;
# 12| 0: [LocalVariableDeclAndInitExpr] Int32 temp = ...
# 12| -1: [TypeMention] int
# 12| 0: [LocalVariableAccess] access to local variable temp
# 12| 1: [ParameterAccess] access to parameter x
# 13| 1: [ExprStmt] ...;
# 13| 0: [AssignExpr] ... = ...
# 13| 0: [ParameterAccess] access to parameter y
# 13| 1: [LocalVariableAccess] access to local variable temp
# 16| 6: [Method] Main
# 16| -1: [TypeMention] Void
# 17| 4: [BlockStmt] {...}
# 18| 0: [LocalVariableDeclStmt] ... ...;
# 18| 0: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 18| -1: [TypeMention] int
# 18| 0: [LocalVariableAccess] access to local variable i
# 18| 1: [IntLiteral] 1
# 18| 1: [LocalVariableDeclAndInitExpr] Int32 j = ...
# 18| -1: [TypeMention] int
# 18| 0: [LocalVariableAccess] access to local variable j
# 18| 1: [IntLiteral] 2
# 19| 1: [ExprStmt] ...;
# 19| 0: [MethodCall] call to method Swap
# 13| 0: [ParameterAccess] access to parameter x
# 13| 1: [ParameterAccess] access to parameter y
# 14| 2: [ExprStmt] ...;
# 14| 0: [AssignExpr] ... = ...
# 14| 0: [ParameterAccess] access to parameter y
# 14| 1: [LocalVariableAccess] access to local variable temp
# 17| 6: [Method] Main
# 17| -1: [TypeMention] Void
# 18| 4: [BlockStmt] {...}
# 19| 0: [LocalVariableDeclStmt] ... ...;
# 19| 0: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 19| -1: [TypeMention] int
# 19| 0: [LocalVariableAccess] access to local variable i
# 19| 1: [LocalVariableAccess] access to local variable j
# 20| 2: [ExprStmt] ...;
# 20| 0: [MethodCall] call to method WriteLine
# 20| -1: [TypeAccess] access to type Console
# 20| 0: [TypeMention] Console
# 20| 0: [StringLiteral] "{0} {1}"
# 20| 1: [CastExpr] (...) ...
# 20| 1: [LocalVariableAccess] access to local variable i
# 20| 2: [CastExpr] (...) ...
# 20| 1: [LocalVariableAccess] access to local variable j
# 21| 3: [ExprStmt] ...;
# 19| 1: [IntLiteral] 1
# 19| 1: [LocalVariableDeclAndInitExpr] Int32 j = ...
# 19| -1: [TypeMention] int
# 19| 0: [LocalVariableAccess] access to local variable j
# 19| 1: [IntLiteral] 2
# 20| 1: [ExprStmt] ...;
# 20| 0: [MethodCall] call to method Swap
# 20| 0: [LocalVariableAccess] access to local variable i
# 20| 1: [LocalVariableAccess] access to local variable j
# 21| 2: [ExprStmt] ...;
# 21| 0: [MethodCall] call to method WriteLine
# 21| -1: [TypeAccess] access to type Console
# 21| 0: [TypeMention] Console
@@ -56,65 +47,65 @@ methods.cs:
# 21| 1: [LocalVariableAccess] access to local variable i
# 21| 2: [CastExpr] (...) ...
# 21| 1: [LocalVariableAccess] access to local variable j
# 25| 2: [Class] TestOut
# 28| 5: [Method] Divide
# 28| -1: [TypeMention] Void
# 22| 3: [ExprStmt] ...;
# 22| 0: [MethodCall] call to method WriteLine
# 22| -1: [TypeAccess] access to type Console
# 22| 0: [TypeMention] Console
# 22| 0: [StringLiteral] "{0} {1}"
# 22| 1: [CastExpr] (...) ...
# 22| 1: [LocalVariableAccess] access to local variable i
# 22| 2: [CastExpr] (...) ...
# 22| 1: [LocalVariableAccess] access to local variable j
# 26| 2: [Class] TestOut
# 29| 5: [Method] Divide
# 29| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 28| 0: [Parameter] x
# 28| -1: [TypeMention] int
# 28| 1: [Parameter] y
# 28| -1: [TypeMention] int
# 28| 2: [Parameter] result
# 28| -1: [TypeMention] int
# 28| 3: [Parameter] remainder
# 28| -1: [TypeMention] int
# 29| 4: [BlockStmt] {...}
# 30| 0: [ExprStmt] ...;
# 30| 0: [AssignExpr] ... = ...
# 30| 0: [ParameterAccess] access to parameter result
# 30| 1: [DivExpr] ... / ...
# 30| 0: [ParameterAccess] access to parameter x
# 30| 1: [ParameterAccess] access to parameter y
# 31| 1: [ExprStmt] ...;
# 29| 0: [Parameter] x
# 29| -1: [TypeMention] int
# 29| 1: [Parameter] y
# 29| -1: [TypeMention] int
# 29| 2: [Parameter] result
# 29| -1: [TypeMention] int
# 29| 3: [Parameter] remainder
# 29| -1: [TypeMention] int
# 30| 4: [BlockStmt] {...}
# 31| 0: [ExprStmt] ...;
# 31| 0: [AssignExpr] ... = ...
# 31| 0: [ParameterAccess] access to parameter remainder
# 31| 1: [RemExpr] ... % ...
# 31| 0: [ParameterAccess] access to parameter result
# 31| 1: [DivExpr] ... / ...
# 31| 0: [ParameterAccess] access to parameter x
# 31| 1: [ParameterAccess] access to parameter y
# 34| 6: [Method] Main
# 34| -1: [TypeMention] Void
# 35| 4: [BlockStmt] {...}
# 36| 0: [LocalVariableDeclStmt] ... ...;
# 36| 0: [LocalVariableDeclExpr] Int32 res
# 36| 0: [TypeMention] int
# 36| 1: [LocalVariableDeclExpr] Int32 rem
# 36| 0: [TypeMention] int
# 37| 1: [ExprStmt] ...;
# 37| 0: [MethodCall] call to method Divide
# 37| 0: [IntLiteral] 10
# 37| 1: [IntLiteral] 3
# 37| 2: [LocalVariableAccess] access to local variable res
# 37| 3: [LocalVariableAccess] access to local variable rem
# 38| 2: [ExprStmt] ...;
# 38| 0: [MethodCall] call to method WriteLine
# 38| -1: [TypeAccess] access to type Console
# 38| 0: [TypeMention] Console
# 38| 0: [StringLiteral] "{0} {1}"
# 38| 1: [CastExpr] (...) ...
# 38| 1: [LocalVariableAccess] access to local variable res
# 38| 2: [CastExpr] (...) ...
# 38| 1: [LocalVariableAccess] access to local variable rem
# 42| 3: [Class] Console
# 45| 5: [Method] Write
# 45| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 45| 0: [Parameter] fmt
# 45| -1: [TypeMention] string
# 45| 1: [Parameter] args
# 45| -1: [TypeMention] Object[]
# 45| 1: [TypeMention] object
# 45| 4: [BlockStmt] {...}
# 46| 6: [Method] WriteLine
# 32| 1: [ExprStmt] ...;
# 32| 0: [AssignExpr] ... = ...
# 32| 0: [ParameterAccess] access to parameter remainder
# 32| 1: [RemExpr] ... % ...
# 32| 0: [ParameterAccess] access to parameter x
# 32| 1: [ParameterAccess] access to parameter y
# 35| 6: [Method] Main
# 35| -1: [TypeMention] Void
# 36| 4: [BlockStmt] {...}
# 37| 0: [LocalVariableDeclStmt] ... ...;
# 37| 0: [LocalVariableDeclExpr] Int32 res
# 37| 0: [TypeMention] int
# 37| 1: [LocalVariableDeclExpr] Int32 rem
# 37| 0: [TypeMention] int
# 38| 1: [ExprStmt] ...;
# 38| 0: [MethodCall] call to method Divide
# 38| 0: [IntLiteral] 10
# 38| 1: [IntLiteral] 3
# 38| 2: [LocalVariableAccess] access to local variable res
# 38| 3: [LocalVariableAccess] access to local variable rem
# 39| 2: [ExprStmt] ...;
# 39| 0: [MethodCall] call to method WriteLine
# 39| -1: [TypeAccess] access to type Console
# 39| 0: [TypeMention] Console
# 39| 0: [StringLiteral] "{0} {1}"
# 39| 1: [CastExpr] (...) ...
# 39| 1: [LocalVariableAccess] access to local variable res
# 39| 2: [CastExpr] (...) ...
# 39| 1: [LocalVariableAccess] access to local variable rem
# 43| 3: [Class] Console
# 46| 5: [Method] Write
# 46| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 46| 0: [Parameter] fmt
@@ -123,354 +114,452 @@ methods.cs:
# 46| -1: [TypeMention] Object[]
# 46| 1: [TypeMention] object
# 46| 4: [BlockStmt] {...}
# 49| 4: [Class] TestOverloading
# 52| 5: [Method] F
# 52| -1: [TypeMention] Void
# 53| 4: [BlockStmt] {...}
# 54| 0: [ExprStmt] ...;
# 54| 0: [MethodCall] call to method WriteLine
# 54| -1: [TypeAccess] access to type Console
# 54| 0: [TypeMention] Console
# 54| 0: [StringLiteral] "F()"
# 57| 6: [Method] F
# 57| -1: [TypeMention] Void
# 47| 6: [Method] WriteLine
# 47| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 57| 0: [Parameter] x
# 57| -1: [TypeMention] object
# 58| 4: [BlockStmt] {...}
# 59| 0: [ExprStmt] ...;
# 59| 0: [MethodCall] call to method WriteLine
# 59| -1: [TypeAccess] access to type Console
# 59| 0: [TypeMention] Console
# 59| 0: [StringLiteral] "F(object)"
# 62| 7: [Method] F
# 62| -1: [TypeMention] Void
# 47| 0: [Parameter] fmt
# 47| -1: [TypeMention] string
# 47| 1: [Parameter] args
# 47| -1: [TypeMention] Object[]
# 47| 1: [TypeMention] object
# 47| 4: [BlockStmt] {...}
# 50| 4: [Class] TestOverloading
# 53| 5: [Method] F
# 53| -1: [TypeMention] Void
# 54| 4: [BlockStmt] {...}
# 55| 0: [ExprStmt] ...;
# 55| 0: [MethodCall] call to method WriteLine
# 55| -1: [TypeAccess] access to type Console
# 55| 0: [TypeMention] Console
# 55| 0: [StringLiteral] "F()"
# 58| 6: [Method] F
# 58| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 62| 0: [Parameter] x
# 62| -1: [TypeMention] int
# 63| 4: [BlockStmt] {...}
# 64| 0: [ExprStmt] ...;
# 64| 0: [MethodCall] call to method WriteLine
# 64| -1: [TypeAccess] access to type Console
# 64| 0: [TypeMention] Console
# 64| 0: [StringLiteral] "F(int)"
# 67| 8: [Method] F
# 67| -1: [TypeMention] Void
# 58| 0: [Parameter] x
# 58| -1: [TypeMention] object
# 59| 4: [BlockStmt] {...}
# 60| 0: [ExprStmt] ...;
# 60| 0: [MethodCall] call to method WriteLine
# 60| -1: [TypeAccess] access to type Console
# 60| 0: [TypeMention] Console
# 60| 0: [StringLiteral] "F(object)"
# 63| 7: [Method] F
# 63| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 67| 0: [Parameter] x
# 67| -1: [TypeMention] double
# 68| 4: [BlockStmt] {...}
# 69| 0: [ExprStmt] ...;
# 69| 0: [MethodCall] call to method WriteLine
# 69| -1: [TypeAccess] access to type Console
# 69| 0: [TypeMention] Console
# 69| 0: [StringLiteral] "F(double)"
# 72| 9: [Method] F
# 72| -1: [TypeMention] Void
# 63| 0: [Parameter] x
# 63| -1: [TypeMention] int
# 64| 4: [BlockStmt] {...}
# 65| 0: [ExprStmt] ...;
# 65| 0: [MethodCall] call to method WriteLine
# 65| -1: [TypeAccess] access to type Console
# 65| 0: [TypeMention] Console
# 65| 0: [StringLiteral] "F(int)"
# 68| 8: [Method] F
# 68| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 68| 0: [Parameter] x
# 68| -1: [TypeMention] double
# 69| 4: [BlockStmt] {...}
# 70| 0: [ExprStmt] ...;
# 70| 0: [MethodCall] call to method WriteLine
# 70| -1: [TypeAccess] access to type Console
# 70| 0: [TypeMention] Console
# 70| 0: [StringLiteral] "F(double)"
# 73| 9: [Method] F
# 73| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 72| 0: [TypeParameter] T
# 73| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 72| 0: [Parameter] x
# 72| -1: [TypeMention] T
# 73| 4: [BlockStmt] {...}
# 74| 0: [ExprStmt] ...;
# 74| 0: [MethodCall] call to method WriteLine
# 74| -1: [TypeAccess] access to type Console
# 74| 0: [TypeMention] Console
# 74| 0: [StringLiteral] "F<T>(T)"
# 77| 12: [Method] F
# 77| -1: [TypeMention] Void
# 73| 0: [Parameter] x
# 73| -1: [TypeMention] T
# 74| 4: [BlockStmt] {...}
# 75| 0: [ExprStmt] ...;
# 75| 0: [MethodCall] call to method WriteLine
# 75| -1: [TypeAccess] access to type Console
# 75| 0: [TypeMention] Console
# 75| 0: [StringLiteral] "F<T>(T)"
# 78| 12: [Method] F
# 78| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 77| 0: [Parameter] x
# 77| -1: [TypeMention] double
# 77| 1: [Parameter] y
# 77| -1: [TypeMention] double
# 78| 4: [BlockStmt] {...}
# 79| 0: [ExprStmt] ...;
# 79| 0: [MethodCall] call to method WriteLine
# 79| -1: [TypeAccess] access to type Console
# 79| 0: [TypeMention] Console
# 79| 0: [StringLiteral] "F(double, double)"
# 82| 13: [Method] Main
# 82| -1: [TypeMention] Void
# 83| 4: [BlockStmt] {...}
# 84| 0: [ExprStmt] ...;
# 84| 0: [MethodCall] call to method F
# 85| 1: [ExprStmt] ...;
# 78| 0: [Parameter] x
# 78| -1: [TypeMention] double
# 78| 1: [Parameter] y
# 78| -1: [TypeMention] double
# 79| 4: [BlockStmt] {...}
# 80| 0: [ExprStmt] ...;
# 80| 0: [MethodCall] call to method WriteLine
# 80| -1: [TypeAccess] access to type Console
# 80| 0: [TypeMention] Console
# 80| 0: [StringLiteral] "F(double, double)"
# 83| 13: [Method] Main
# 83| -1: [TypeMention] Void
# 84| 4: [BlockStmt] {...}
# 85| 0: [ExprStmt] ...;
# 85| 0: [MethodCall] call to method F
# 85| 0: [IntLiteral] 1
# 86| 2: [ExprStmt] ...;
# 86| 1: [ExprStmt] ...;
# 86| 0: [MethodCall] call to method F
# 86| 0: [DoubleLiteral] 1
# 87| 3: [ExprStmt] ...;
# 86| 0: [IntLiteral] 1
# 87| 2: [ExprStmt] ...;
# 87| 0: [MethodCall] call to method F
# 87| 0: [StringLiteral] "abc"
# 88| 4: [ExprStmt] ...;
# 87| 0: [DoubleLiteral] 1
# 88| 3: [ExprStmt] ...;
# 88| 0: [MethodCall] call to method F
# 88| 0: [CastExpr] (...) ...
# 88| 0: [TypeAccess] access to type Double
# 88| 0: [TypeMention] double
# 88| 1: [IntLiteral] 1
# 89| 5: [ExprStmt] ...;
# 88| 0: [StringLiteral] "abc"
# 89| 4: [ExprStmt] ...;
# 89| 0: [MethodCall] call to method F
# 89| 0: [CastExpr] (...) ...
# 89| 0: [TypeAccess] access to type Object
# 89| 0: [TypeMention] object
# 89| 0: [TypeAccess] access to type Double
# 89| 0: [TypeMention] double
# 89| 1: [IntLiteral] 1
# 90| 6: [ExprStmt] ...;
# 90| 5: [ExprStmt] ...;
# 90| 0: [MethodCall] call to method F
# 90| 0: [IntLiteral] 1
# 91| 7: [ExprStmt] ...;
# 90| 0: [CastExpr] (...) ...
# 90| 0: [TypeAccess] access to type Object
# 90| 0: [TypeMention] object
# 90| 1: [IntLiteral] 1
# 91| 6: [ExprStmt] ...;
# 91| 0: [MethodCall] call to method F
# 91| 0: [CastExpr] (...) ...
# 91| 1: [IntLiteral] 1
# 91| 1: [CastExpr] (...) ...
# 91| 1: [IntLiteral] 1
# 96| 5: [Class] Extensions
# 99| 4: [ExtensionMethod] ToInt32
# 99| -1: [TypeMention] int
# 91| 0: [IntLiteral] 1
# 92| 7: [ExprStmt] ...;
# 92| 0: [MethodCall] call to method F
# 92| 0: [CastExpr] (...) ...
# 92| 1: [IntLiteral] 1
# 92| 1: [CastExpr] (...) ...
# 92| 1: [IntLiteral] 1
# 97| 5: [Class] Extensions
# 100| 4: [ExtensionMethod] ToInt32
# 100| -1: [TypeMention] int
#-----| 2: (Parameters)
# 99| 0: [Parameter] s
# 99| -1: [TypeMention] string
# 100| 4: [BlockStmt] {...}
# 101| 0: [ReturnStmt] return ...;
# 101| 0: [MethodCall] call to method Parse
# 101| -1: [TypeAccess] access to type Int32
# 101| 0: [TypeMention] int
# 101| 0: [ParameterAccess] access to parameter s
# 104| 5: [ExtensionMethod] ToBool
# 104| -1: [TypeMention] bool
# 100| 0: [Parameter] s
# 100| -1: [TypeMention] string
# 101| 4: [BlockStmt] {...}
# 102| 0: [ReturnStmt] return ...;
# 102| 0: [MethodCall] call to method Parse
# 102| -1: [TypeAccess] access to type Int32
# 102| 0: [TypeMention] int
# 102| 0: [ParameterAccess] access to parameter s
# 105| 5: [ExtensionMethod] ToBool
# 105| -1: [TypeMention] bool
#-----| 2: (Parameters)
# 104| 0: [Parameter] s
# 104| -1: [TypeMention] string
# 104| 1: [Parameter] f
# 104| -1: [TypeMention] Func<String, Boolean>
# 104| 1: [TypeMention] string
# 104| 2: [TypeMention] bool
# 105| 4: [BlockStmt] {...}
# 106| 0: [ReturnStmt] return ...;
# 106| 0: [DelegateCall] delegate call
# 106| -1: [ParameterAccess] access to parameter f
# 106| 0: [ParameterAccess] access to parameter s
# 109| 6: [ExtensionMethod] Slice
# 109| -1: [TypeMention] T[]
# 109| 1: [TypeMention] T
# 105| 0: [Parameter] s
# 105| -1: [TypeMention] string
# 105| 1: [Parameter] f
# 105| -1: [TypeMention] Func<String, Boolean>
# 105| 1: [TypeMention] string
# 105| 2: [TypeMention] bool
# 106| 4: [BlockStmt] {...}
# 107| 0: [ReturnStmt] return ...;
# 107| 0: [DelegateCall] delegate call
# 107| -1: [ParameterAccess] access to parameter f
# 107| 0: [ParameterAccess] access to parameter s
# 110| 6: [ExtensionMethod] Slice
# 110| -1: [TypeMention] T[]
# 110| 1: [TypeMention] T
#-----| 1: (Type parameters)
# 109| 0: [TypeParameter] T
# 110| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 109| 0: [Parameter] source
# 109| -1: [TypeMention] T[]
# 109| 1: [TypeMention] T
# 109| 1: [Parameter] index
# 109| -1: [TypeMention] int
# 109| 2: [Parameter] count
# 109| -1: [TypeMention] int
# 110| 4: [BlockStmt] {...}
# 111| 0: [IfStmt] if (...) ...
# 111| 0: [LogicalOrExpr] ... || ...
# 111| 0: [LogicalOrExpr] ... || ...
# 111| 0: [LTExpr] ... < ...
# 111| 0: [ParameterAccess] access to parameter index
# 111| 1: [IntLiteral] 0
# 111| 1: [LTExpr] ... < ...
# 111| 0: [ParameterAccess] access to parameter count
# 111| 1: [IntLiteral] 0
# 111| 1: [LTExpr] ... < ...
# 111| 0: [SubExpr] ... - ...
# 111| 0: [PropertyCall] access to property Length
# 111| -1: [ParameterAccess] access to parameter source
# 111| 1: [ParameterAccess] access to parameter index
# 111| 1: [ParameterAccess] access to parameter count
# 112| 1: [ThrowStmt] throw ...;
# 112| 0: [ObjectCreation] object creation of type ArgumentException
# 112| 0: [TypeMention] ArgumentException
# 113| 1: [LocalVariableDeclStmt] ... ...;
# 113| 0: [LocalVariableDeclAndInitExpr] T[] result = ...
# 113| -1: [TypeMention] T[]
# 113| 1: [TypeMention] T
# 113| 0: [LocalVariableAccess] access to local variable result
# 113| 1: [ArrayCreation] array creation of type T[]
# 113| -1: [TypeMention] T[]
# 113| 1: [TypeMention] T
# 113| 0: [ParameterAccess] access to parameter count
# 114| 2: [ExprStmt] ...;
# 114| 0: [MethodCall] call to method Copy
# 114| -1: [TypeAccess] access to type Array
# 114| 0: [TypeMention] Array
# 114| 0: [ParameterAccess] access to parameter source
# 114| 1: [ParameterAccess] access to parameter index
# 114| 2: [LocalVariableAccess] access to local variable result
# 114| 3: [IntLiteral] 0
# 114| 4: [ParameterAccess] access to parameter count
# 115| 3: [ReturnStmt] return ...;
# 115| 0: [LocalVariableAccess] access to local variable result
# 118| 8: [Method] CallToInt32
# 118| -1: [TypeMention] int
# 118| 4: [MethodCall] call to method ToInt32
# 118| 0: [StringLiteral] "0"
# 121| 6: [Class] TestExtensions
# 124| 4: [Method] Main
# 124| -1: [TypeMention] Void
# 125| 4: [BlockStmt] {...}
# 126| 0: [LocalVariableDeclStmt] ... ...;
# 126| 0: [LocalVariableDeclAndInitExpr] String[] strings = ...
# 126| -1: [TypeMention] String[]
# 126| 1: [TypeMention] string
# 126| 0: [LocalVariableAccess] access to local variable strings
# 126| 1: [ArrayCreation] array creation of type String[]
# 126| -1: [ArrayInitializer] { ..., ... }
# 126| 0: [StringLiteral] "1"
# 126| 1: [StringLiteral] "22"
# 126| 2: [StringLiteral] "333"
# 126| 3: [StringLiteral] "4444"
# 127| 1: [ForeachStmt] foreach (... ... in ...) ...
# 127| 0: [LocalVariableDeclExpr] String s
# 127| 0: [TypeMention] string
# 127| 1: [MethodCall] call to method Slice
# 127| -1: [LocalVariableAccess] access to local variable strings
# 127| 0: [IntLiteral] 1
# 127| 1: [IntLiteral] 2
# 128| 2: [BlockStmt] {...}
# 129| 0: [ExprStmt] ...;
# 129| 0: [MethodCall] call to method WriteLine
# 129| -1: [TypeAccess] access to type Console
# 129| 0: [TypeMention] Console
# 129| 0: [MethodCall] call to method ToInt32
# 129| -1: [LocalVariableAccess] access to local variable s
# 132| 2: [ExprStmt] ...;
# 132| 0: [MethodCall] call to method ToInt32
# 132| -1: [TypeAccess] access to type Extensions
# 132| 0: [TypeMention] Extensions
# 132| 0: [StringLiteral] ""
# 134| 3: [ExprStmt] ...;
# 134| 0: [MethodCall] call to method ToBool
# 134| -1: [TypeAccess] access to type Extensions
# 134| 0: [TypeMention] Extensions
# 134| 0: [StringLiteral] "true"
# 134| 1: [ImplicitDelegateCreation] delegate creation of type Func<String,Boolean>
# 134| 0: [MethodAccess] access to method Parse
# 134| -1: [TypeAccess] access to type Boolean
# 134| 0: [TypeMention] bool
# 139| 7: [Class] TestDefaultParameters
# 141| 4: [Method] Method1
# 141| -1: [TypeMention] Void
# 110| 0: [Parameter] source
# 110| -1: [TypeMention] T[]
# 110| 1: [TypeMention] T
# 110| 1: [Parameter] index
# 110| -1: [TypeMention] int
# 110| 2: [Parameter] count
# 110| -1: [TypeMention] int
# 111| 4: [BlockStmt] {...}
# 112| 0: [IfStmt] if (...) ...
# 112| 0: [LogicalOrExpr] ... || ...
# 112| 0: [LogicalOrExpr] ... || ...
# 112| 0: [LTExpr] ... < ...
# 112| 0: [ParameterAccess] access to parameter index
# 112| 1: [IntLiteral] 0
# 112| 1: [LTExpr] ... < ...
# 112| 0: [ParameterAccess] access to parameter count
# 112| 1: [IntLiteral] 0
# 112| 1: [LTExpr] ... < ...
# 112| 0: [SubExpr] ... - ...
# 112| 0: [PropertyCall] access to property Length
# 112| -1: [ParameterAccess] access to parameter source
# 112| 1: [ParameterAccess] access to parameter index
# 112| 1: [ParameterAccess] access to parameter count
# 113| 1: [ThrowStmt] throw ...;
# 113| 0: [ObjectCreation] object creation of type ArgumentException
# 113| 0: [TypeMention] ArgumentException
# 114| 1: [LocalVariableDeclStmt] ... ...;
# 114| 0: [LocalVariableDeclAndInitExpr] T[] result = ...
# 114| -1: [TypeMention] T[]
# 114| 1: [TypeMention] T
# 114| 0: [LocalVariableAccess] access to local variable result
# 114| 1: [ArrayCreation] array creation of type T[]
# 114| -1: [TypeMention] T[]
# 114| 1: [TypeMention] T
# 114| 0: [ParameterAccess] access to parameter count
# 115| 2: [ExprStmt] ...;
# 115| 0: [MethodCall] call to method Copy
# 115| -1: [TypeAccess] access to type Array
# 115| 0: [TypeMention] Array
# 115| 0: [ParameterAccess] access to parameter source
# 115| 1: [ParameterAccess] access to parameter index
# 115| 2: [LocalVariableAccess] access to local variable result
# 115| 3: [IntLiteral] 0
# 115| 4: [ParameterAccess] access to parameter count
# 116| 3: [ReturnStmt] return ...;
# 116| 0: [LocalVariableAccess] access to local variable result
# 119| 8: [Method] CallToInt32
# 119| -1: [TypeMention] int
# 119| 4: [MethodCall] call to method ToInt32
# 119| 0: [StringLiteral] "0"
# 122| 6: [Class] TestExtensions
# 125| 4: [Method] Main
# 125| -1: [TypeMention] Void
# 126| 4: [BlockStmt] {...}
# 127| 0: [LocalVariableDeclStmt] ... ...;
# 127| 0: [LocalVariableDeclAndInitExpr] String[] strings = ...
# 127| -1: [TypeMention] String[]
# 127| 1: [TypeMention] string
# 127| 0: [LocalVariableAccess] access to local variable strings
# 127| 1: [ArrayCreation] array creation of type String[]
# 127| -1: [ArrayInitializer] { ..., ... }
# 127| 0: [StringLiteral] "1"
# 127| 1: [StringLiteral] "22"
# 127| 2: [StringLiteral] "333"
# 127| 3: [StringLiteral] "4444"
# 128| 1: [ForeachStmt] foreach (... ... in ...) ...
# 128| 0: [LocalVariableDeclExpr] String s
# 128| 0: [TypeMention] string
# 128| 1: [MethodCall] call to method Slice
# 128| -1: [LocalVariableAccess] access to local variable strings
# 128| 0: [IntLiteral] 1
# 128| 1: [IntLiteral] 2
# 129| 2: [BlockStmt] {...}
# 130| 0: [ExprStmt] ...;
# 130| 0: [MethodCall] call to method WriteLine
# 130| -1: [TypeAccess] access to type Console
# 130| 0: [TypeMention] Console
# 130| 0: [MethodCall] call to method ToInt32
# 130| -1: [LocalVariableAccess] access to local variable s
# 133| 2: [ExprStmt] ...;
# 133| 0: [MethodCall] call to method ToInt32
# 133| -1: [TypeAccess] access to type Extensions
# 133| 0: [TypeMention] Extensions
# 133| 0: [StringLiteral] ""
# 135| 3: [ExprStmt] ...;
# 135| 0: [MethodCall] call to method ToBool
# 135| -1: [TypeAccess] access to type Extensions
# 135| 0: [TypeMention] Extensions
# 135| 0: [StringLiteral] "true"
# 135| 1: [ImplicitDelegateCreation] delegate creation of type Func<String,Boolean>
# 135| 0: [MethodAccess] access to method Parse
# 135| -1: [TypeAccess] access to type Boolean
# 135| 0: [TypeMention] bool
# 140| 7: [Class] TestDefaultParameters
# 142| 4: [Method] Method1
# 142| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 141| 0: [Parameter] x
# 141| -1: [TypeMention] int
# 141| 1: [Parameter] y
# 141| -1: [TypeMention] int
# 142| 4: [BlockStmt] {...}
# 145| 5: [Method] Method2
# 145| -1: [TypeMention] Void
# 142| 0: [Parameter] x
# 142| -1: [TypeMention] int
# 142| 1: [Parameter] y
# 142| -1: [TypeMention] int
# 143| 4: [BlockStmt] {...}
# 146| 5: [Method] Method2
# 146| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 145| 0: [Parameter] a
# 145| -1: [TypeMention] int
# 145| 1: [Parameter] b
# 145| -1: [TypeMention] int
# 145| 2: [Parameter] c
# 145| -1: [TypeMention] int
# 145| 1: [IntLiteral] 1
# 145| 3: [Parameter] d
# 145| -1: [TypeMention] int
# 145| 1: [IntLiteral] 2
# 145| 4: [Parameter] e
# 145| -1: [TypeMention] string
# 145| 1: [AddExpr] ... + ...
# 145| 0: [StringLiteral] "a"
# 145| 1: [StringLiteral] "b"
# 146| 4: [BlockStmt] {...}
# 149| 6: [InstanceConstructor] TestDefaultParameters
# 146| 0: [Parameter] a
# 146| -1: [TypeMention] int
# 146| 1: [Parameter] b
# 146| -1: [TypeMention] int
# 146| 2: [Parameter] c
# 146| -1: [TypeMention] int
# 146| 1: [IntLiteral] 1
# 146| 3: [Parameter] d
# 146| -1: [TypeMention] int
# 146| 1: [IntLiteral] 2
# 146| 4: [Parameter] e
# 146| -1: [TypeMention] string
# 146| 1: [AddExpr] ... + ...
# 146| 0: [StringLiteral] "a"
# 146| 1: [StringLiteral] "b"
# 147| 4: [BlockStmt] {...}
# 150| 6: [InstanceConstructor] TestDefaultParameters
#-----| 2: (Parameters)
# 149| 0: [Parameter] x
# 149| -1: [TypeMention] int
# 150| 4: [BlockStmt] {...}
# 153| 7: [InstanceConstructor] TestDefaultParameters
# 150| 0: [Parameter] x
# 150| -1: [TypeMention] int
# 151| 4: [BlockStmt] {...}
# 154| 7: [InstanceConstructor] TestDefaultParameters
#-----| 2: (Parameters)
# 153| 0: [Parameter] x
# 153| -1: [TypeMention] string
# 153| 1: [StringLiteral] "abc"
# 153| 1: [Parameter] y
# 153| -1: [TypeMention] double
# 153| 1: [ObjectCreation] object creation of type Double
# 153| 0: [TypeMention] double
# 154| 4: [BlockStmt] {...}
# 157| 8: [DelegateType] Del
# 154| 0: [Parameter] x
# 154| -1: [TypeMention] string
# 154| 1: [StringLiteral] "abc"
# 154| 1: [Parameter] y
# 154| -1: [TypeMention] double
# 154| 1: [ObjectCreation] object creation of type Double
# 154| 0: [TypeMention] double
# 155| 4: [BlockStmt] {...}
# 158| 8: [DelegateType] Del
#-----| 2: (Parameters)
# 157| 0: [Parameter] a
# 157| -1: [TypeMention] string
# 157| 1: [Parameter] b
# 157| -1: [TypeMention] int
# 157| 1: [IntLiteral] 12
# 157| 2: [Parameter] c
# 157| -1: [TypeMention] double
# 157| 1: [ObjectCreation] object creation of type Double
# 157| 0: [TypeMention] double
# 159| 9: [Indexer] Item
# 159| -1: [TypeMention] int
# 158| 0: [Parameter] a
# 158| -1: [TypeMention] string
# 158| 1: [Parameter] b
# 158| -1: [TypeMention] int
# 158| 1: [IntLiteral] 12
# 158| 2: [Parameter] c
# 158| -1: [TypeMention] double
# 158| 1: [ObjectCreation] object creation of type Double
# 158| 0: [TypeMention] double
# 160| 9: [Indexer] Item
# 160| -1: [TypeMention] int
#-----| 1: (Parameters)
# 159| 0: [Parameter] x
# 159| -1: [TypeMention] int
# 159| 1: [Parameter] y
# 159| -1: [TypeMention] int
# 159| 1: [IntLiteral] 0
# 161| 3: [Getter] get_Item
# 160| 0: [Parameter] x
# 160| -1: [TypeMention] int
# 160| 1: [Parameter] y
# 160| -1: [TypeMention] int
# 160| 1: [IntLiteral] 0
# 162| 3: [Getter] get_Item
#-----| 2: (Parameters)
# 159| 0: [Parameter] x
# 159| 1: [Parameter] y
# 159| 1: [IntLiteral] 0
# 161| 4: [BlockStmt] {...}
# 161| 0: [ReturnStmt] return ...;
# 161| 0: [AddExpr] ... + ...
# 161| 0: [ParameterAccess] access to parameter x
# 161| 1: [ParameterAccess] access to parameter y
# 162| 4: [Setter] set_Item
#-----| 2: (Parameters)
# 159| 0: [Parameter] x
# 159| 1: [Parameter] y
# 159| 1: [IntLiteral] 0
# 162| 2: [Parameter] value
# 160| 0: [Parameter] x
# 160| 1: [Parameter] y
# 160| 1: [IntLiteral] 0
# 162| 4: [BlockStmt] {...}
# 166| 8: [Class] TestDefaultExtensionParameters
# 168| 4: [ExtensionMethod] Plus
# 168| -1: [TypeMention] int
# 162| 0: [ReturnStmt] return ...;
# 162| 0: [AddExpr] ... + ...
# 162| 0: [ParameterAccess] access to parameter x
# 162| 1: [ParameterAccess] access to parameter y
# 163| 4: [Setter] set_Item
#-----| 2: (Parameters)
# 160| 0: [Parameter] x
# 160| 1: [Parameter] y
# 160| 1: [IntLiteral] 0
# 163| 2: [Parameter] value
# 163| 4: [BlockStmt] {...}
# 167| 8: [Class] TestDefaultExtensionParameters
# 169| 4: [ExtensionMethod] Plus
# 169| -1: [TypeMention] int
#-----| 2: (Parameters)
# 168| 0: [Parameter] left
# 168| -1: [TypeMention] int
# 168| 1: [Parameter] right
# 168| -1: [TypeMention] int
# 168| 1: [IntLiteral] 0
# 169| 4: [BlockStmt] {...}
# 170| 0: [ReturnStmt] return ...;
# 170| 0: [AddExpr] ... + ...
# 170| 0: [ParameterAccess] access to parameter left
# 170| 1: [ParameterAccess] access to parameter right
# 173| 5: [ExtensionMethod] SkipTwo
# 173| -1: [TypeMention] IEnumerable<T>
# 173| 1: [TypeMention] T
# 169| 0: [Parameter] left
# 169| -1: [TypeMention] int
# 169| 1: [Parameter] right
# 169| -1: [TypeMention] int
# 169| 1: [IntLiteral] 0
# 170| 4: [BlockStmt] {...}
# 171| 0: [ReturnStmt] return ...;
# 171| 0: [AddExpr] ... + ...
# 171| 0: [ParameterAccess] access to parameter left
# 171| 1: [ParameterAccess] access to parameter right
# 174| 5: [ExtensionMethod] SkipTwo
# 174| -1: [TypeMention] IEnumerable<T>
# 174| 1: [TypeMention] T
#-----| 1: (Type parameters)
# 173| 0: [TypeParameter] T
# 174| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 173| 0: [Parameter] list
# 173| -1: [TypeMention] IEnumerable<T>
# 173| 1: [TypeMention] T
# 173| 1: [Parameter] i
# 173| -1: [TypeMention] int
# 173| 1: [IntLiteral] 1
# 174| 4: [BlockStmt] {...}
# 175| 0: [ReturnStmt] return ...;
# 175| 0: [ParameterAccess] access to parameter list
# 178| 7: [ExtensionMethod] SkipTwoInt
# 178| -1: [TypeMention] IEnumerable<Int32>
# 178| 1: [TypeMention] int
# 174| 0: [Parameter] list
# 174| -1: [TypeMention] IEnumerable<T>
# 174| 1: [TypeMention] T
# 174| 1: [Parameter] i
# 174| -1: [TypeMention] int
# 174| 1: [IntLiteral] 1
# 175| 4: [BlockStmt] {...}
# 176| 0: [ReturnStmt] return ...;
# 176| 0: [ParameterAccess] access to parameter list
# 179| 7: [ExtensionMethod] SkipTwoInt
# 179| -1: [TypeMention] IEnumerable<Int32>
# 179| 1: [TypeMention] int
#-----| 2: (Parameters)
# 178| 0: [Parameter] list
# 178| -1: [TypeMention] IEnumerable<Int32>
# 178| 1: [TypeMention] int
# 178| 1: [Parameter] i
# 178| -1: [TypeMention] int
# 178| 1: [IntLiteral] 1
# 179| 4: [BlockStmt] {...}
# 180| 0: [ReturnStmt] return ...;
# 180| 0: [MethodCall] call to method SkipTwo
# 180| -1: [ParameterAccess] access to parameter list
# 180| 0: [ParameterAccess] access to parameter i
# 179| 0: [Parameter] list
# 179| -1: [TypeMention] IEnumerable<Int32>
# 179| 1: [TypeMention] int
# 179| 1: [Parameter] i
# 179| -1: [TypeMention] int
# 179| 1: [IntLiteral] 1
# 180| 4: [BlockStmt] {...}
# 181| 0: [ReturnStmt] return ...;
# 181| 0: [MethodCall] call to method SkipTwo
# 181| -1: [ParameterAccess] access to parameter list
# 181| 0: [ParameterAccess] access to parameter i
# 185| 9: [Class] TestCollidingMethods<>
#-----| 1: (Type parameters)
# 185| 0: [TypeParameter] T
# 187| 5: [Method] M
# 187| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 187| 0: [Parameter] p1
# 187| -1: [TypeMention] T
# 187| 1: [Parameter] p2
# 187| -1: [TypeMention] int
# 187| 4: [BlockStmt] {...}
# 188| 6: [Method] M
# 188| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 188| 0: [Parameter] p1
# 188| -1: [TypeMention] int
# 188| 1: [Parameter] p2
# 188| -1: [TypeMention] int
# 188| 4: [BlockStmt] {...}
# 190| 7: [Method] Calls
# 190| -1: [TypeMention] Void
# 191| 4: [BlockStmt] {...}
# 192| 0: [LocalVariableDeclStmt] ... ...;
# 192| 0: [LocalVariableDeclAndInitExpr] TestCollidingMethods<Int32> x = ...
# 192| -1: [TypeMention] TestCollidingMethods<Int32>
# 192| 0: [LocalVariableAccess] access to local variable x
# 192| 1: [ObjectCreation] object creation of type TestCollidingMethods<Int32>
# 192| 0: [TypeMention] TestCollidingMethods<Int32>
# 192| 1: [TypeMention] int
# 193| 1: [ExprStmt] ...;
# 193| 0: [MethodCall] call to method M
# 193| -1: [LocalVariableAccess] access to local variable x
# 193| 0: [IntLiteral] 1
# 193| 1: [IntLiteral] 1
# 195| 2: [LocalVariableDeclStmt] ... ...;
# 195| 0: [LocalVariableDeclAndInitExpr] TestCollidingMethods<Double> y = ...
# 195| -1: [TypeMention] TestCollidingMethods<Double>
# 195| 0: [LocalVariableAccess] access to local variable y
# 195| 1: [ObjectCreation] object creation of type TestCollidingMethods<Double>
# 195| 0: [TypeMention] TestCollidingMethods<Double>
# 195| 1: [TypeMention] double
# 196| 3: [ExprStmt] ...;
# 196| 0: [MethodCall] call to method M
# 196| -1: [LocalVariableAccess] access to local variable y
# 196| 0: [DoubleLiteral] 1
# 196| 1: [IntLiteral] 1
# 197| 4: [ExprStmt] ...;
# 197| 0: [MethodCall] call to method M
# 197| -1: [LocalVariableAccess] access to local variable y
# 197| 0: [IntLiteral] 1
# 197| 1: [IntLiteral] 1
# 200| 8: [Class] Nested
# 202| 4: [InstanceConstructor] Nested
#-----| 2: (Parameters)
# 202| 0: [Parameter] p1
# 202| -1: [TypeMention] int
# 202| 4: [BlockStmt] {...}
# 203| 5: [InstanceConstructor] Nested
#-----| 2: (Parameters)
# 203| 0: [Parameter] p1
# 203| -1: [TypeMention] T
# 204| 4: [BlockStmt] {...}
# 205| 0: [LocalVariableDeclStmt] ... ...;
# 205| 0: [LocalVariableDeclAndInitExpr] Nested x = ...
# 205| -1: [TypeMention] Nested
# 205| 0: [LocalVariableAccess] access to local variable x
# 205| 1: [ObjectCreation] object creation of type Nested
# 205| -1: [TypeMention] Nested
# 205| 1: [TypeMention] TestCollidingMethods<Int32>
# 205| 1: [TypeMention] int
# 205| 0: [IntLiteral] 1
# 206| 1: [LocalVariableDeclStmt] ... ...;
# 206| 0: [LocalVariableDeclAndInitExpr] Nested y = ...
# 206| -1: [TypeMention] Nested
# 206| 0: [LocalVariableAccess] access to local variable y
# 206| 1: [ObjectCreation] object creation of type Nested
# 206| -1: [TypeMention] Nested
# 206| 1: [TypeMention] TestCollidingMethods<Double>
# 206| 1: [TypeMention] double
# 206| 0: [DoubleLiteral] 1
# 207| 2: [LocalVariableDeclStmt] ... ...;
# 207| 0: [LocalVariableDeclAndInitExpr] Nested z = ...
# 207| -1: [TypeMention] Nested
# 207| 0: [LocalVariableAccess] access to local variable z
# 207| 1: [ObjectCreation] object creation of type Nested
# 207| -1: [TypeMention] Nested
# 207| 1: [TypeMention] TestCollidingMethods<Double>
# 207| 1: [TypeMention] double
# 207| 0: [IntLiteral] 1

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
namespace Methods
{
@@ -180,4 +181,31 @@ namespace Methods
return list.SkipTwo<int>(i);
}
}
public class TestCollidingMethods<T>
{
public void M(T p1, int p2) { }
public void M(int p1, int p2) { }
public void Calls()
{
var x = new TestCollidingMethods<int>();
x.M(1, 1);
var y = new TestCollidingMethods<double>();
y.M(1.0, 1);
y.M(1, 1);
}
public class Nested
{
public Nested(int p1) { }
public Nested(T p1)
{
var x = new TestCollidingMethods<int>.Nested(1);
var y = new TestCollidingMethods<double>.Nested(1.0);
var z = new TestCollidingMethods<double>.Nested(1);
}
}
}
}