Skip to content

Commit d9df245

Browse files
authored
Merge pull request #56121 from dotnet/merges/main-to-main-vs-deps
Merge main to main-vs-deps
2 parents 3a0ccdc + f161807 commit d9df245

19 files changed

+325
-2
lines changed

src/Compilers/CSharp/Portable/CSharpResources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6857,4 +6857,7 @@ To remove the warning, you can use /reference instead (set the Embed Interop Typ
68576857
<data name="WRN_InterpolatedStringHandlerArgumentAttributeIgnoredOnLambdaParameters_Title" xml:space="preserve">
68586858
<value>InterpolatedStringHandlerArgument has no effect when applied to lambda parameters and will be ignored at the call site.</value>
68596859
</data>
6860+
<data name="ERR_LambdaWithAttributesToExpressionTree" xml:space="preserve">
6861+
<value>A lambda expression with attributes cannot be converted to an expression tree</value>
6862+
</data>
68606863
</root>

src/Compilers/CSharp/Portable/Errors/ErrorCode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1995,6 +1995,7 @@ internal enum ErrorCode
19951995
// WRN_AttrDependentTypeNotAllowed = 8969, // Backed out of of warning wave 6, may be reintroduced later
19961996
ERR_AttrDependentTypeNotAllowed = 8970,
19971997
WRN_InterpolatedStringHandlerArgumentAttributeIgnoredOnLambdaParameters = 8971,
1998+
ERR_LambdaWithAttributesToExpressionTree = 8972,
19981999

19992000
#endregion
20002001

src/Compilers/CSharp/Portable/Lowering/DiagnosticsPass_ExpressionTrees.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,14 @@ public override BoundNode VisitLambda(BoundLambda node)
517517
if (_inExpressionLambda)
518518
{
519519
var lambda = node.Symbol;
520+
bool reportedAttributes = false;
521+
522+
if (!lambda.GetAttributes().IsEmpty || !lambda.GetReturnTypeAttributes().IsEmpty)
523+
{
524+
Error(ErrorCode.ERR_LambdaWithAttributesToExpressionTree, node);
525+
reportedAttributes = true;
526+
}
527+
520528
foreach (var p in lambda.Parameters)
521529
{
522530
if (p.RefKind != RefKind.None && p.Locations.Length != 0)
@@ -527,6 +535,12 @@ public override BoundNode VisitLambda(BoundLambda node)
527535
{
528536
_diagnostics.Add(ErrorCode.ERR_ExpressionTreeCantContainRefStruct, p.Locations[0], p.Type.Name);
529537
}
538+
539+
if (!reportedAttributes && !p.GetAttributes().IsEmpty)
540+
{
541+
_diagnostics.Add(ErrorCode.ERR_LambdaWithAttributesToExpressionTree, p.Locations[0]);
542+
reportedAttributes = true;
543+
}
530544
}
531545

532546
switch (node.Syntax.Kind())

src/Compilers/CSharp/Portable/Symbols/NativeIntegerTypeSymbol.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ public override ImmutableArray<Symbol> GetMembers()
7070
ImmutableArray<Symbol> makeMembers(ImmutableArray<Symbol> underlyingMembers)
7171
{
7272
var builder = ArrayBuilder<Symbol>.GetInstance();
73-
builder.Add(new SynthesizedInstanceConstructor(this));
7473
foreach (var underlyingMember in underlyingMembers)
7574
{
7675
Debug.Assert(_underlyingType.Equals(underlyingMember.ContainingSymbol));
@@ -103,6 +102,13 @@ ImmutableArray<Symbol> makeMembers(ImmutableArray<Symbol> underlyingMembers)
103102
break;
104103
}
105104
break;
105+
106+
case MethodKind.Constructor:
107+
if (underlyingMethod.ParameterCount == 0)
108+
{
109+
builder.Add(new NativeIntegerMethodSymbol(this, underlyingMethod, associatedSymbol: null));
110+
}
111+
break;
106112
}
107113
break;
108114
case PropertySymbol underlyingProperty:

src/Compilers/CSharp/Portable/xlf/CSharpResources.cs.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compilers/CSharp/Portable/xlf/CSharpResources.de.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compilers/CSharp/Portable/xlf/CSharpResources.es.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compilers/CSharp/Portable/xlf/CSharpResources.fr.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compilers/CSharp/Portable/xlf/CSharpResources.it.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compilers/CSharp/Portable/xlf/CSharpResources.ja.xlf

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)