Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
2bedf28
Merge main to ParamsCollections (#71150)
AlekseyTs Dec 7, 2023
569dcb7
Make trivial Params Collections scenarios working end to end (#71136)
AlekseyTs Dec 11, 2023
60a4581
Params Collections: Implement language version check. (#71228)
AlekseyTs Dec 13, 2023
88c8859
Params Collections: Implement "Better function member" section of the…
AlekseyTs Dec 18, 2023
07fc1db
IOperation - drop synthesized conversion placed on top of params coll…
AlekseyTs Dec 20, 2023
0e16ec0
Add handling of params collections for natural delegate types (#71334)
AlekseyTs Jan 6, 2024
a91ef66
Params Collections - Adjust binding in presence of dynamic arguments …
AlekseyTs Jan 8, 2024
a9ffbe0
Params Collections: misc chanages (#71423)
AlekseyTs Jan 9, 2024
4fb7084
Merge 'dotnet/main' into ParamsCollections
AlekseyTs Jan 9, 2024
99ef47c
Temporarily skip some tests to unblock merge from `main`
AlekseyTs Jan 9, 2024
0be7dc3
Merge 'dotnet/main' into ParamsCollections (#71545)
AlekseyTs Jan 9, 2024
6bc0d9b
Enable some dynamic collection expression tests which were disabled d…
AlekseyTs Jan 10, 2024
7f00d15
Add a test for 'Params Collections.' (#71572)
AlekseyTs Jan 11, 2024
55b6a79
Params Collections: Add a bunch of PROTOTYPE comments and a couple of…
AlekseyTs Jan 12, 2024
ba5ee92
Use ParamCollectionAttribute to mark params collections in metadata (…
AlekseyTs Jan 26, 2024
399026e
Merge 'dotnet/main' into ParamsCollections
AlekseyTs Jan 26, 2024
882ccbc
Follow up on merge from 'main'
AlekseyTs Jan 26, 2024
897fd49
Merge 'dotnet/main' into ParamsCollections(#71824)
AlekseyTs Jan 26, 2024
1c5c7e2
Adjust public API based on API review feedback (#71940)
AlekseyTs Feb 5, 2024
6cd3f1e
Align `params` type validation with the the spec (#71918)
AlekseyTs Feb 7, 2024
6fcac7d
Params parameters are implicitly scoped when their type is a ref stru…
AlekseyTs Feb 9, 2024
18852b8
Merge remote-tracking branch 'dotnet/main' into ParamsCollections_20
AlekseyTs Feb 10, 2024
25414ee
Update test according to changes in ParamsCollections branch
AlekseyTs Feb 10, 2024
1dbe23e
Merge 'dotnet/main' into ParamsCollections (#72042)
AlekseyTs Feb 12, 2024
2b8a744
Break a cycle through attributes (#72041)
AlekseyTs Feb 12, 2024
7ddc662
Add more tests and address some of the PROTOTYPE comments (#72089)
AlekseyTs Feb 14, 2024
ba462cc
Address more PROTOTYPE comments (#72113)
AlekseyTs Feb 16, 2024
03fd758
Clone some IDE tests for params collections (#72228)
AlekseyTs Feb 22, 2024
05cf517
Add `ArgumentKind.ParamCollection` (#72221)
AlekseyTs Feb 22, 2024
8085621
Rename BoundNode flag for clarity (#72235)
AlekseyTs Feb 23, 2024
9180f98
Params parameter is implicitly scoped if and only if `params` is expl…
AlekseyTs Feb 27, 2024
835dd26
Address some PROTOTYPE comments (#72298)
AlekseyTs Feb 29, 2024
5b563bf
Merge 'main' into ParamsCollections
AlekseyTs Mar 5, 2024
637dec2
Regenerate ErrorFacts.Generated.cs
AlekseyTs Mar 5, 2024
811c275
Merge 'main' into ParamsCollections (#72390)
AlekseyTs Mar 5, 2024
b6f9fe5
Rename IDS_ParamsCollections to IDS_FeatureParamsCollections (#72399)
AlekseyTs Mar 5, 2024
91815cb
Misc. work for params collections (#72408)
AlekseyTs Mar 6, 2024
512187f
Ensure obsolete diagnostics about required constructor or Add method …
AlekseyTs Mar 8, 2024
84d12e1
Merge 'main' into ParamsCollections
AlekseyTs Mar 12, 2024
bf22912
Merge 'main' into ParamsCollections (#72497)
AlekseyTs Mar 12, 2024
99f3521
Adjust GetUnderlyingCollectionExpressionElement to handle params coll…
AlekseyTs Mar 12, 2024
bc9a7f0
Pack resource IDs and adjust Compiler Test Plan (#72499)
AlekseyTs Mar 12, 2024
3d0bcbb
Merge 'features/ParamsCollections' into 'main'
AlekseyTs Mar 12, 2024
d073ac9
Adjust test baselines
AlekseyTs Mar 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
IOperation - drop synthesized conversion placed on top of params coll…
…ections (#71325)
  • Loading branch information
AlekseyTs authored Dec 20, 2023
commit 07fc1dbbed98d963e9fc54bb68637648e3cdcd9a
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private IInstanceReferenceOperation CreateImplicitReceiver(SyntaxNode syntax, Ty
internal IArgumentOperation CreateArgumentOperation(ArgumentKind kind, IParameterSymbol? parameter, BoundExpression expression)
{
// put argument syntax to argument operation
IOperation value = Create(expression);
IOperation value = Create(expression is BoundConversion { IsParamsCollection: true } conversion ? conversion.Operand : expression);
(SyntaxNode syntax, bool isImplicit) = expression.Syntax is { Parent: ArgumentSyntax or AttributeArgumentSyntax } ? (expression.Syntax.Parent, expression.WasCompilerGenerated) : (value.Syntax, true);
return new ArgumentOperation(
kind,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,8 @@ static void Test2()
null
Arguments(1):
IArgumentOperation (ArgumentKind.ParamArray, Matching Parameter: a) (OperationKind.Argument, Type: null, IsImplicit) (Syntax: 'Test()')
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test()')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ICollectionExpressionOperation (0 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test()')
Elements(0)
ICollectionExpressionOperation (0 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test()')
Elements(0)
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
""");
Expand All @@ -91,15 +88,12 @@ static void Test2()
null
Arguments(1):
IArgumentOperation (ArgumentKind.ParamArray, Matching Parameter: a) (OperationKind.Argument, Type: null, IsImplicit) (Syntax: 'Test(1)')
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(1)')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ICollectionExpressionOperation (1 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(1)')
Elements(1):
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 1, IsImplicit) (Syntax: '1')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 1) (Syntax: '1')
ICollectionExpressionOperation (1 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(1)')
Elements(1):
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 1, IsImplicit) (Syntax: '1')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 1) (Syntax: '1')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
""");
Expand All @@ -110,19 +104,16 @@ static void Test2()
null
Arguments(1):
IArgumentOperation (ArgumentKind.ParamArray, Matching Parameter: a) (OperationKind.Argument, Type: null, IsImplicit) (Syntax: 'Test(2, 3)')
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(2, 3)')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ICollectionExpressionOperation (2 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(2, 3)')
Elements(2):
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 2, IsImplicit) (Syntax: '2')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 2) (Syntax: '2')
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 3, IsImplicit) (Syntax: '3')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 3) (Syntax: '3')
ICollectionExpressionOperation (2 elements, ConstructMethod: null) (OperationKind.CollectionExpression, Type: System.Span<System.Int64>, IsImplicit) (Syntax: 'Test(2, 3)')
Elements(2):
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 2, IsImplicit) (Syntax: '2')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 2) (Syntax: '2')
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int64, Constant: 3, IsImplicit) (Syntax: '3')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 3) (Syntax: '3')
InConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
OutConversion: CommonConversion (Exists: True, IsIdentity: True, IsNumeric: False, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
""");
Expand Down