提交 bc6524f9 编写于 作者: G Gen Lu

Address review comments

上级 dbc57e35
......@@ -17,7 +17,7 @@ internal abstract class BaseCSharpArgument : BaseArgument
public override CommonConversion OutConversion => new CommonConversion(exists: true, isIdentity: true, isNumeric: false, isReference: false, methodSymbol: null);
}
internal sealed partial class CSharpArgument : BaseCSharpArgument
internal sealed class CSharpArgument : BaseCSharpArgument
{
public CSharpArgument(ArgumentKind argumentKind, IParameterSymbol parameter, IOperation value, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, Optional<object> constantValue, bool isImplicit) :
base(argumentKind, parameter, semanticModel, syntax, type, constantValue, isImplicit)
......@@ -28,7 +28,7 @@ internal sealed partial class CSharpArgument : BaseCSharpArgument
protected override IOperation ValueImpl { get; }
}
internal sealed partial class LazyCSharpArgument : BaseCSharpArgument
internal sealed class LazyCSharpArgument : BaseCSharpArgument
{
private readonly Lazy<IOperation> _lazyValue;
......
......@@ -2224,7 +2224,7 @@ struct G<T>
[CompilerTrait(CompilerFeature.IOperation)]
[Fact]
public void GettingInOutConverionFromCSharpArgumentShouldThrowException()
public void GettingInOutConversionFromCSharpArgumentShouldThrowException()
{
string source = @"
class P
......@@ -2245,6 +2245,7 @@ static void M2(int x)
var invocation = (IInvocationExpression)operation;
var argument = invocation.ArgumentsInEvaluationOrder[0];
// We are calling VB extension methods on IArgument in C# code, therefore exception is expteced here.
Assert.Throws<ArgumentException>(() => argument.GetInConversion());
Assert.Throws<ArgumentException>(() => argument.GetOutConversion());
}
......
......@@ -861,12 +861,7 @@ Public MustInherit Class BasicTestBaseBase
Dim semanticModel = compilation.GetSemanticModel(node.SyntaxTree)
Dim operation = semanticModel.GetOperationInternal(node)
If operation IsNot Nothing Then
Return (operation, node)
Else
Return (Nothing, Nothing)
End If
Return (operation, node)
End Function
#End Region
......
......@@ -105,47 +105,37 @@ Namespace Microsoft.CodeAnalysis.Semantics
isImplicit:=isImplicit)
Case Else
Dim lastParameterIndex = parameters.Length - 1
Dim kind As ArgumentKind
Dim parameter As ParameterSymbol
If index = lastParameterIndex AndAlso ParameterIsParamArray(parameters(lastParameterIndex)) Then
' TODO: figure out if this is true:
' a compiler generated argument for a ParamArray parameter is created iff
' a list of arguments (including 0 argument) is provided for ParamArray parameter in source
' https://github.com/dotnet/roslyn/issues/18550
Dim kind = If(argument.WasCompilerGenerated AndAlso argument.Kind = BoundKind.ArrayCreation, ArgumentKind.ParamArray, ArgumentKind.Explicit)
Dim parameter = parameters(lastParameterIndex)
Dim value = Create(argument)
Return New VisualBasicArgument(
kind,
parameter,
value,
inConversion:=New Conversion(Conversions.Identity),
outConversion:=New Conversion(Conversions.Identity),
semanticModel:=_semanticModel,
syntax:=value.Syntax,
type:=Nothing,
constantValue:=Nothing,
isImplicit:=isImplicit)
kind = If(argument.WasCompilerGenerated AndAlso argument.Kind = BoundKind.ArrayCreation, ArgumentKind.ParamArray, ArgumentKind.Explicit)
parameter = parameters(lastParameterIndex)
Else
' TODO: figure our if this is true:
' a compiler generated argument for an Optional parameter is created iff
' the argument is omitted from the source
' https://github.com/dotnet/roslyn/issues/18550
Dim kind = If(argument.WasCompilerGenerated, ArgumentKind.DefaultValue, ArgumentKind.Explicit)
Dim parameter = parameters(index)
Dim value = Create(argument)
Return New VisualBasicArgument(
kind,
parameter,
value,
inConversion:=New Conversion(Conversions.Identity),
outConversion:=New Conversion(Conversions.Identity),
semanticModel:=_semanticModel,
syntax:=value.Syntax,
type:=Nothing,
constantValue:=Nothing,
isImplicit:=isImplicit)
kind = If(argument.WasCompilerGenerated, ArgumentKind.DefaultValue, ArgumentKind.Explicit)
parameter = parameters(index)
End If
Dim value = Create(argument)
Return New VisualBasicArgument(
kind,
parameter,
Create(argument),
inConversion:=New Conversion(Conversions.Identity),
outConversion:=New Conversion(Conversions.Identity),
semanticModel:=_semanticModel,
syntax:=value.Syntax,
type:=Nothing,
constantValue:=Nothing,
isImplicit:=isImplicit)
End Select
End Function
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册