Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
46eb1122
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
46eb1122
编写于
2月 11, 2016
作者:
J
John Hamby
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Overhaul IInstanceReferenceExpression.
上级
28791bf5
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
86 addition
and
62 deletion
+86
-62
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
+8
-14
src/Compilers/Core/CodeAnalysisTest/Diagnostics/FieldCouldBeReadOnlyAnalyzer.cs
...eAnalysisTest/Diagnostics/FieldCouldBeReadOnlyAnalyzer.cs
+0
-2
src/Compilers/Core/CodeAnalysisTest/Diagnostics/OperationTestAnalyzer.cs
...ore/CodeAnalysisTest/Diagnostics/OperationTestAnalyzer.cs
+3
-4
src/Compilers/Core/Portable/Compilation/Expression.cs
src/Compilers/Core/Portable/Compilation/Expression.cs
+2
-2
src/Compilers/Core/Portable/Compilation/IExpression.cs
src/Compilers/Core/Portable/Compilation/IExpression.cs
+51
-6
src/Compilers/Core/Portable/Compilation/IOperation.cs
src/Compilers/Core/Portable/Compilation/IOperation.cs
+1
-2
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
+12
-5
src/Compilers/VisualBasic/Portable/BoundTree/Expression.vb
src/Compilers/VisualBasic/Portable/BoundTree/Expression.vb
+9
-27
未找到文件。
src/Compilers/CSharp/Portable/BoundTree/Expression.cs
浏览文件 @
46eb1122
...
...
@@ -884,11 +884,9 @@ public override void Accept(OperationVisitor visitor)
internal
partial
class
BoundBaseReference
:
IInstanceReferenceExpression
{
bool
IInstanceReferenceExpression
.
IsExplicit
=>
this
.
Syntax
.
Kind
()
==
SyntaxKind
.
BaseExpression
;
InstanceReferenceKind
IInstanceReferenceExpression
.
InstanceReferenceKind
=>
InstanceReferenceKind
.
BaseClass
;
IParameterSymbol
IParameterReferenceExpression
.
Parameter
=>
(
IParameterSymbol
)
this
.
ExpressionSymbol
;
protected
override
OperationKind
ExpressionKind
=>
OperationKind
.
BaseClassInstanceReferenceExpression
;
protected
override
OperationKind
ExpressionKind
=>
OperationKind
.
InstanceReferenceExpression
;
public
override
void
Accept
(
OperationVisitor
visitor
)
{
...
...
@@ -903,9 +901,7 @@ public override void Accept(OperationVisitor visitor)
internal
partial
class
BoundThisReference
:
IInstanceReferenceExpression
{
bool
IInstanceReferenceExpression
.
IsExplicit
=>
this
.
Syntax
.
Kind
()
==
SyntaxKind
.
ThisExpression
;
IParameterSymbol
IParameterReferenceExpression
.
Parameter
=>
(
IParameterSymbol
)
this
.
ExpressionSymbol
;
InstanceReferenceKind
IInstanceReferenceExpression
.
InstanceReferenceKind
=>
this
.
Syntax
.
Kind
()
==
SyntaxKind
.
ThisExpression
?
InstanceReferenceKind
.
Explicit
:
InstanceReferenceKind
.
Implicit
;
protected
override
OperationKind
ExpressionKind
=>
OperationKind
.
InstanceReferenceExpression
;
...
...
@@ -941,7 +937,7 @@ public override void Accept(OperationVisitor visitor)
internal
partial
class
BoundCompoundAssignmentOperator
:
ICompoundAssignmentExpression
{
BinaryOperationKind
ICompoundAssignmentExpression
.
BinaryKind
=>
Expression
.
DeriveBinaryOperationKind
(
this
.
Operator
.
Kind
);
BinaryOperationKind
ICompoundAssignmentExpression
.
Binary
Operation
Kind
=>
Expression
.
DeriveBinaryOperationKind
(
this
.
Operator
.
Kind
);
IReferenceExpression
IAssignmentExpression
.
Target
=>
this
.
Left
as
IReferenceExpression
;
...
...
@@ -966,9 +962,9 @@ public override void Accept(OperationVisitor visitor)
internal
partial
class
BoundIncrementOperator
:
IIncrementExpression
{
UnaryOperationKind
IIncrementExpression
.
IncrementKind
=>
Expression
.
DeriveUnaryOperationKind
(
this
.
OperatorKind
);
UnaryOperationKind
IIncrementExpression
.
Increment
Operation
Kind
=>
Expression
.
DeriveUnaryOperationKind
(
this
.
OperatorKind
);
BinaryOperationKind
ICompoundAssignmentExpression
.
Binary
Kind
=>
Expression
.
DeriveBinaryOperationKind
(((
IIncrementExpression
)
this
).
Increment
Kind
);
BinaryOperationKind
ICompoundAssignmentExpression
.
Binary
OperationKind
=>
Expression
.
DeriveBinaryOperationKind
(((
IIncrementExpression
)
this
).
IncrementOperation
Kind
);
IReferenceExpression
IAssignmentExpression
.
Target
=>
this
.
Operand
as
IReferenceExpression
;
...
...
@@ -1211,10 +1207,8 @@ public override void Accept(OperationVisitor visitor)
internal
partial
class
BoundImplicitReceiver
:
IInstanceReferenceExpression
{
bool
IInstanceReferenceExpression
.
IsExplicit
=>
false
;
IParameterSymbol
IParameterReferenceExpression
.
Parameter
=>
(
IParameterSymbol
)
this
.
ExpressionSymbol
;
InstanceReferenceKind
IInstanceReferenceExpression
.
InstanceReferenceKind
=>
InstanceReferenceKind
.
Implicit
;
protected
override
OperationKind
ExpressionKind
=>
OperationKind
.
InstanceReferenceExpression
;
public
override
void
Accept
(
OperationVisitor
visitor
)
...
...
src/Compilers/Core/CodeAnalysisTest/Diagnostics/FieldCouldBeReadOnlyAnalyzer.cs
浏览文件 @
46eb1122
...
...
@@ -104,8 +104,6 @@ private static void AssignTo(IExpression target, bool inConstructor, ITypeSymbol
switch
(
fieldReference
.
Instance
.
Kind
)
{
case
OperationKind
.
InstanceReferenceExpression
:
case
OperationKind
.
BaseClassInstanceReferenceExpression
:
case
OperationKind
.
ClassInstanceReferenceExpression
:
return
;
}
}
...
...
src/Compilers/Core/CodeAnalysisTest/Diagnostics/OperationTestAnalyzer.cs
浏览文件 @
46eb1122
...
...
@@ -216,7 +216,7 @@ public sealed override void Initialize(AnalysisContext context)
{
// Advance binary operation is known to involve a reference to the local used in the test and a constant.
advanceIncrement
=
advanceAssignment
.
Value
;
advanceOperationCode
=
advanceAssignment
.
BinaryKind
;
advanceOperationCode
=
advanceAssignment
.
Binary
Operation
Kind
;
}
}
...
...
@@ -918,10 +918,9 @@ public sealed override void Initialize(AnalysisContext context)
(
operationContext
)
=>
{
IInstanceReferenceExpression
instanceReference
=
(
IInstanceReferenceExpression
)
operationContext
.
Operation
;
operationContext
.
ReportDiagnostic
(
Diagnostic
.
Create
(
instanceReference
.
I
sExplicit
?
ExplicitInstanceDescriptor
:
Im
plicitInstanceDescriptor
,
instanceReference
.
Syntax
.
GetLocation
()));
operationContext
.
ReportDiagnostic
(
Diagnostic
.
Create
(
instanceReference
.
I
nstanceReferenceKind
==
InstanceReferenceKind
.
Implicit
?
ImplicitInstanceDescriptor
:
Ex
plicitInstanceDescriptor
,
instanceReference
.
Syntax
.
GetLocation
()));
},
OperationKind
.
InstanceReferenceExpression
,
OperationKind
.
BaseClassInstanceReferenceExpression
);
OperationKind
.
InstanceReferenceExpression
);
}
}
...
...
src/Compilers/Core/Portable/Compilation/Expression.cs
浏览文件 @
46eb1122
...
...
@@ -216,7 +216,7 @@ public CompoundAssignmentExpression(IReferenceExpression target, IExpression val
{
this
.
Target
=
target
;
this
.
Value
=
value
;
this
.
BinaryKind
=
binaryKind
;
this
.
Binary
Operation
Kind
=
binaryKind
;
this
.
OperatorMethod
=
operatorMethod
;
this
.
Syntax
=
syntax
;
}
...
...
@@ -225,7 +225,7 @@ public CompoundAssignmentExpression(IReferenceExpression target, IExpression val
public
IExpression
Value
{
get
;
}
public
BinaryOperationKind
BinaryKind
{
get
;
}
public
BinaryOperationKind
Binary
Operation
Kind
{
get
;
}
public
IMethodSymbol
OperatorMethod
{
get
;
}
...
...
src/Compilers/Core/Portable/Compilation/IExpression.cs
浏览文件 @
46eb1122
...
...
@@ -198,16 +198,29 @@ public enum SyntheticLocalKind
}
/// <summary>
/// Represents a
reference to a C# this or VB Me parameter
.
/// Represents a
C# this or base expression, or a VB Me, MyClass, or MyBase expression
.
/// </summary>
public
interface
IInstanceReferenceExpression
:
I
ParameterReference
Expression
public
interface
IInstanceReferenceExpression
:
IExpression
{
///
/// <summary>
///
Indicates whether the reference is explicit or implicit in sour
ce.
///
Kind of instance referen
ce.
/// </summary>
bool
IsExplicit
{
get
;
}
InstanceReferenceKind
InstanceReferenceKind
{
get
;
}
}
public
enum
InstanceReferenceKind
{
/// <summary>Indicates an implicit this or Me expression.</summary>
Implicit
=
0x0
,
/// <summary>Indicates an explicit this or Me expression.</summary>
Explicit
=
0x1
,
/// <summary>Indicates an explicit base or MyBase expression.</summary>
BaseClass
=
0x2
,
/// <summary>Indicates an explicit MyClass expression.</summary>
ThisClass
=
0x3
}
/// <summary>
/// Represents a reference to a member of a class, struct, or interface.
/// </summary>
...
...
@@ -713,6 +726,14 @@ public static SimpleUnaryOperationKind GetSimpleUnaryOperationKind(this IUnaryOp
return
GetSimpleUnaryOperationKind
(
unary
.
UnaryOperationKind
);
}
/// <summary>
/// Get unary operation kind independent of data type.
/// </summary>
public
static
SimpleUnaryOperationKind
GetSimpleUnaryOperationKind
(
this
IIncrementExpression
increment
)
{
return
GetSimpleUnaryOperationKind
(
increment
.
IncrementOperationKind
);
}
/// <summary>
/// Get unary operand kind.
/// </summary>
...
...
@@ -721,6 +742,14 @@ public static UnaryOperandKind GetUnaryOperandKind(this IUnaryOperatorExpression
return
GetUnaryOperandKind
(
unary
.
UnaryOperationKind
);
}
/// <summary>
/// Get unary operand kind.
/// </summary>
public
static
UnaryOperandKind
GetUnaryOperandKind
(
this
IIncrementExpression
increment
)
{
return
GetUnaryOperandKind
(
increment
.
IncrementOperationKind
);
}
/// <summary>
/// Get binary operation kind independent of data type.
/// </summary>
...
...
@@ -729,6 +758,14 @@ public static SimpleBinaryOperationKind GetSimpleBinaryOperationKind(this IBinar
return
GetSimpleBinaryOperationKind
(
binary
.
BinaryOperationKind
);
}
/// <summary>
/// Get binary operation kind independent of data type.
/// </summary>
public
static
SimpleBinaryOperationKind
GetSimpleBinaryOperationKind
(
this
ICompoundAssignmentExpression
compoundAssignment
)
{
return
GetSimpleBinaryOperationKind
(
compoundAssignment
.
BinaryOperationKind
);
}
/// <summary>
/// Get binary operand kinds.
/// </summary>
...
...
@@ -737,6 +774,14 @@ public static BinaryOperandsKind GetBinaryOperandsKind(this IBinaryOperatorExpre
return
GetBinaryOperandsKind
(
binary
.
BinaryOperationKind
);
}
/// <summary>
/// Get binary operand kinds.
/// </summary>
public
static
BinaryOperandsKind
GetBinaryOperandsKind
(
this
ICompoundAssignmentExpression
compoundAssignment
)
{
return
GetBinaryOperandsKind
(
compoundAssignment
.
BinaryOperationKind
);
}
public
static
SimpleUnaryOperationKind
GetSimpleUnaryOperationKind
(
UnaryOperationKind
kind
)
{
return
(
SimpleUnaryOperationKind
)((
int
)
kind
&
UnaryAndBinaryOperationExtensions
.
SimpleUnaryOperationKindMask
);
...
...
@@ -1036,7 +1081,7 @@ public interface ICompoundAssignmentExpression : IAssignmentExpression, IHasOper
/// <summary>
/// Kind of binary operation.
/// </summary>
BinaryOperationKind
BinaryKind
{
get
;
}
BinaryOperationKind
Binary
Operation
Kind
{
get
;
}
}
/// <summary>
...
...
@@ -1047,7 +1092,7 @@ public interface IIncrementExpression : ICompoundAssignmentExpression
/// <summary>
/// Kind of increment.
/// </summary>
UnaryOperationKind
IncrementKind
{
get
;
}
UnaryOperationKind
Increment
Operation
Kind
{
get
;
}
}
/// <summary>
...
...
src/Compilers/Core/Portable/Compilation/IOperation.cs
浏览文件 @
46eb1122
...
...
@@ -122,9 +122,8 @@ public enum OperationKind
/// <summary>Indicates an <see cref="IArrayCreationExpression"/>.</summary>
ArrayCreationExpression
=
0x2e
,
DefaultValueExpression
=
0x2f
,
/// <summary>Indicates an <see cref="IInstanceReferenceExpression"/>.</summary>
InstanceReferenceExpression
=
0x30
,
BaseClassInstanceReferenceExpression
=
0x31
,
ClassInstanceReferenceExpression
=
0x32
,
/// <summary>Indicates an <see cref="IIsExpression"/>.</summary>
IsExpression
=
0x33
,
// TypeOperationExpression = 0x34,
...
...
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
浏览文件 @
46eb1122
...
...
@@ -73,12 +73,10 @@ Microsoft.CodeAnalysis.OperationKind.ArrayElementReferenceExpression = 29 -> Mic
Microsoft.CodeAnalysis.OperationKind.ArrayInitializer = 69 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.AssignmentExpression = 55 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.AwaitExpression = 53 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.BaseClassInstanceReferenceExpression = 49 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.BinaryOperatorExpression = 40 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.BlockStatement = 2 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.BranchStatement = 12 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.CatchClause = 18 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.ClassInstanceReferenceExpression = 50 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.CompoundAssignmentExpression = 56 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.ConditionalAccessExpression = 64 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.ConditionalChoiceExpression = 41 -> Microsoft.CodeAnalysis.OperationKind
...
...
@@ -367,7 +365,7 @@ Microsoft.CodeAnalysis.Semantics.ICatchClause.ExceptionLocal.get -> Microsoft.Co
Microsoft.CodeAnalysis.Semantics.ICatchClause.Filter.get -> Microsoft.CodeAnalysis.Semantics.IExpression
Microsoft.CodeAnalysis.Semantics.ICatchClause.Handler.get -> Microsoft.CodeAnalysis.Semantics.IBlockStatement
Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression
Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression.BinaryKind.get -> Microsoft.CodeAnalysis.Semantics.BinaryOperationKind
Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression.Binary
Operation
Kind.get -> Microsoft.CodeAnalysis.Semantics.BinaryOperationKind
Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression
Microsoft.CodeAnalysis.Semantics.IConditionalAccessExpression.Access.get -> Microsoft.CodeAnalysis.Semantics.IExpression
Microsoft.CodeAnalysis.Semantics.IConditionalChoiceExpression
...
...
@@ -419,9 +417,9 @@ Microsoft.CodeAnalysis.Semantics.IIfStatement.Condition.get -> Microsoft.CodeAna
Microsoft.CodeAnalysis.Semantics.IIfStatement.IfFalse.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Semantics.IIfStatement.IfTrue.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Semantics.IIncrementExpression
Microsoft.CodeAnalysis.Semantics.IIncrementExpression.IncrementKind.get -> Microsoft.CodeAnalysis.Semantics.UnaryOperationKind
Microsoft.CodeAnalysis.Semantics.IIncrementExpression.Increment
Operation
Kind.get -> Microsoft.CodeAnalysis.Semantics.UnaryOperationKind
Microsoft.CodeAnalysis.Semantics.IInstanceReferenceExpression
Microsoft.CodeAnalysis.Semantics.IInstanceReferenceExpression.I
sExplicit.get -> bool
Microsoft.CodeAnalysis.Semantics.IInstanceReferenceExpression.I
nstanceReferenceKind.get -> Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.IInvalidStatement
Microsoft.CodeAnalysis.Semantics.IInvocationExpression
Microsoft.CodeAnalysis.Semantics.IInvocationExpression.ArgumentsInSourceOrder.get -> System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.Semantics.IArgument>
...
...
@@ -528,6 +526,11 @@ Microsoft.CodeAnalysis.Semantics.IWhileUntilLoopStatement.IsWhile.get -> bool
Microsoft.CodeAnalysis.Semantics.IWithStatement
Microsoft.CodeAnalysis.Semantics.IWithStatement.Body.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Semantics.IWithStatement.Value.get -> Microsoft.CodeAnalysis.Semantics.IExpression
Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind.BaseClass = 2 -> Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind.Explicit = 1 -> Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind.Implicit = 0 -> Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind.ThisClass = 3 -> Microsoft.CodeAnalysis.Semantics.InstanceReferenceKind
Microsoft.CodeAnalysis.Semantics.LoopKind
Microsoft.CodeAnalysis.Semantics.LoopKind.For = 1 -> Microsoft.CodeAnalysis.Semantics.LoopKind
Microsoft.CodeAnalysis.Semantics.LoopKind.ForEach = 2 -> Microsoft.CodeAnalysis.Semantics.LoopKind
...
...
@@ -732,11 +735,15 @@ static Microsoft.CodeAnalysis.Semantics.OperationExtensions.DescendantsAndSelf(t
static Microsoft.CodeAnalysis.Semantics.OperationExtensions.GetRootOperation(this Microsoft.CodeAnalysis.ISymbol symbol, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.IOperation
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetBinaryOperandsKind(Microsoft.CodeAnalysis.Semantics.BinaryOperationKind kind) -> Microsoft.CodeAnalysis.Semantics.BinaryOperandsKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetBinaryOperandsKind(this Microsoft.CodeAnalysis.Semantics.IBinaryOperatorExpression binary) -> Microsoft.CodeAnalysis.Semantics.BinaryOperandsKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetBinaryOperandsKind(this Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression compoundAssignment) -> Microsoft.CodeAnalysis.Semantics.BinaryOperandsKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleBinaryOperationKind(Microsoft.CodeAnalysis.Semantics.BinaryOperationKind kind) -> Microsoft.CodeAnalysis.Semantics.SimpleBinaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleBinaryOperationKind(this Microsoft.CodeAnalysis.Semantics.IBinaryOperatorExpression binary) -> Microsoft.CodeAnalysis.Semantics.SimpleBinaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleBinaryOperationKind(this Microsoft.CodeAnalysis.Semantics.ICompoundAssignmentExpression compoundAssignment) -> Microsoft.CodeAnalysis.Semantics.SimpleBinaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleUnaryOperationKind(Microsoft.CodeAnalysis.Semantics.UnaryOperationKind kind) -> Microsoft.CodeAnalysis.Semantics.SimpleUnaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleUnaryOperationKind(this Microsoft.CodeAnalysis.Semantics.IIncrementExpression increment) -> Microsoft.CodeAnalysis.Semantics.SimpleUnaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetSimpleUnaryOperationKind(this Microsoft.CodeAnalysis.Semantics.IUnaryOperatorExpression unary) -> Microsoft.CodeAnalysis.Semantics.SimpleUnaryOperationKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetUnaryOperandKind(Microsoft.CodeAnalysis.Semantics.UnaryOperationKind kind) -> Microsoft.CodeAnalysis.Semantics.UnaryOperandKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetUnaryOperandKind(this Microsoft.CodeAnalysis.Semantics.IIncrementExpression increment) -> Microsoft.CodeAnalysis.Semantics.UnaryOperandKind
static Microsoft.CodeAnalysis.Semantics.UnaryAndBinaryOperationExtensions.GetUnaryOperandKind(this Microsoft.CodeAnalysis.Semantics.IUnaryOperatorExpression unary) -> Microsoft.CodeAnalysis.Semantics.UnaryOperandKind
virtual Microsoft.CodeAnalysis.Diagnostics.AnalysisContext.ConfigureGeneratedCodeAnalysis(Microsoft.CodeAnalysis.Diagnostics.GeneratedCodeAnalysisFlags analysisMode) -> void
virtual Microsoft.CodeAnalysis.Diagnostics.AnalysisContext.EnableConcurrentExecution() -> void
...
...
src/Compilers/VisualBasic/Portable/BoundTree/Expression.vb
浏览文件 @
46eb1122
...
...
@@ -78,7 +78,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End
Get
End
Property
Private
ReadOnly
Property
IBinaryKind
As
BinaryOperationKind
Implements
ICompoundAssignmentExpression
.
BinaryKind
Private
ReadOnly
Property
IBinaryKind
As
BinaryOperationKind
Implements
ICompoundAssignmentExpression
.
Binary
Operation
Kind
Get
If
ExpressionKind
()
=
OperationKind
.
CompoundAssignmentExpression
Then
Dim
rightBinary
As
BoundBinaryOperator
=
TryCast
(
Me
.
Right
,
BoundBinaryOperator
)
...
...
@@ -154,15 +154,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Friend
Partial
Class
BoundMeReference
Implements
IInstanceReferenceExpression
Private
ReadOnly
Property
II
sExplicit
As
Boolean
Implements
IInstanceReferenceExpression
.
IsExplicit
Private
ReadOnly
Property
II
nstanceReferenceKind
As
InstanceReferenceKind
Implements
IInstanceReferenceExpression
.
InstanceReferenceKind
Get
Return
Not
Me
.
WasCompilerGenerated
End
Get
End
Property
Private
ReadOnly
Property
IParameter
As
IParameterSymbol
Implements
IParameterReferenceExpression
.
Parameter
Get
Return
DirectCast
(
Me
.
ExpressionSymbol
,
IParameterSymbol
)
Return
If
(
Me
.
WasCompilerGenerated
,
InstanceReferenceKind
.
Implicit
,
InstanceReferenceKind
.
Explicit
)
End
Get
End
Property
...
...
@@ -182,20 +176,14 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Friend
Partial
Class
BoundMyBaseReference
Implements
IInstanceReferenceExpression
Private
ReadOnly
Property
IIsExplicit
As
Boolean
Implements
IInstanceReferenceExpression
.
IsExplicit
Get
Return
True
End
Get
End
Property
Private
ReadOnly
Property
IParameter
As
IParameterSymbol
Implements
IParameterReferenceExpression
.
Parameter
Private
ReadOnly
Property
IInstanceReferenceKind
As
InstanceReferenceKind
Implements
IInstanceReferenceExpression
.
InstanceReferenceKind
Get
Return
DirectCast
(
Me
.
ExpressionSymbol
,
IParameterSymbol
)
Return
InstanceReferenceKind
.
BaseClass
End
Get
End
Property
Protected
Overrides
Function
ExpressionKind
()
As
OperationKind
Return
OperationKind
.
BaseClass
InstanceReferenceExpression
Return
OperationKind
.
InstanceReferenceExpression
End
Function
Public
Overrides
Sub
Accept
(
visitor
As
OperationVisitor
)
...
...
@@ -210,20 +198,14 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Friend
Partial
Class
BoundMyClassReference
Implements
IInstanceReferenceExpression
Private
ReadOnly
Property
IIsExplicit
As
Boolean
Implements
IInstanceReferenceExpression
.
IsExplicit
Get
Return
True
End
Get
End
Property
Private
ReadOnly
Property
IParameter
As
IParameterSymbol
Implements
IParameterReferenceExpression
.
Parameter
Private
ReadOnly
Property
IInstanceReferenceKind
As
InstanceReferenceKind
Implements
IInstanceReferenceExpression
.
InstanceReferenceKind
Get
Return
DirectCast
(
Me
.
ExpressionSymbol
,
IParameterSymbol
)
Return
InstanceReferenceKind
.
ThisClass
End
Get
End
Property
Protected
Overrides
Function
ExpressionKind
()
As
OperationKind
Return
OperationKind
.
Class
InstanceReferenceExpression
Return
OperationKind
.
InstanceReferenceExpression
End
Function
Public
Overrides
Sub
Accept
(
visitor
As
OperationVisitor
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录