@@ -55,7 +48,7 @@ public interface IVariableDeclaration : IOperation
/// <summary>
/// Represents a C# switch or VB Select Case statement.
/// </summary>
publicinterfaceISwitchStatement:IStatement
publicinterfaceISwitchStatement:IOperation
{
/// <summary>
/// Value to be switched upon.
...
...
@@ -79,7 +72,7 @@ public interface ICase : IOperation
/// <summary>
/// Statements of the case.
/// </summary>
ImmutableArray<IStatement>Body{get;}
ImmutableArray<IOperation>Body{get;}
}
/// <summary>
...
...
@@ -164,7 +157,7 @@ public interface IRangeCaseClause : ICaseClause
/// <summary>
/// Represents an if statement in C# or an If statement in VB.
/// </summary>
publicinterfaceIIfStatement:IStatement
publicinterfaceIIfStatement:IOperation
{
/// <summary>
/// Condition of the if statement. For C# there is naturally one clause per if, but for VB If statements with multiple clauses are rewritten to have only one.
...
...
@@ -173,17 +166,17 @@ public interface IIfStatement : IStatement
/// <summary>
/// Statement executed if the condition is true.
/// </summary>
IStatementIfTrue{get;}
IOperationIfTrue{get;}
/// <summary>
/// Statement executed if the condition is false.
/// </summary>
IStatementIfFalse{get;}
IOperationIfFalse{get;}
}
/// <summary>
/// Represents a C# while, for, foreach, or do statement, or a VB While, For, For Each, or Do statement.
/// </summary>
publicinterfaceILoopStatement:IStatement
publicinterfaceILoopStatement:IOperation
{
/// <summary>
/// Kind of the loop.
...
...
@@ -192,7 +185,7 @@ public interface ILoopStatement : IStatement
/// <summary>
/// Body of the loop.
/// </summary>
IStatementBody{get;}
IOperationBody{get;}
}
/// <summary>
...
...
@@ -203,15 +196,15 @@ public enum LoopKind
/// <summary>
/// Indicates a C# while or do loop, or a VB While or Do loop.
/// </summary>
WhileUntil,
WhileUntil=0x0,
/// <summary>
/// Indicates a C# for loop or a VB For loop.
/// </summary>
For,
For=0x1,
/// <summary>
/// Indicates a C# foreach loop or a VB For Each loop.
/// </summary>
ForEach
ForEach=0x2
}
/// <summary>
...
...
@@ -248,11 +241,11 @@ public interface IForLoopStatement : IForWhileUntilLoopStatement
/// <summary>
/// Statements to execute before entry to the loop. For C# these come from the first clause of the for statement. For VB these initialize the index variable of the For statement.
/// </summary>
ImmutableArray<IStatement>Before{get;}
ImmutableArray<IOperation>Before{get;}
/// <summary>
/// Statements to execute at the bottom of the loop. For C# these come from the third clause of the for statement. For VB these increment the index variable of the For statement.
/// </summary>
ImmutableArray<IStatement>AtLoopBottom{get;}
ImmutableArray<IOperation>AtLoopBottom{get;}
/// <summary>
/// Declarations local to the loop.
/// </summary>
...
...
@@ -277,7 +270,7 @@ public interface IForEachLoopStatement : ILoopStatement
/// <summary>
/// Represents a C# or VB label statement.
/// </summary>
publicinterfaceILabelStatement:IStatement
publicinterfaceILabelStatement:IOperation
{
// Label that can be the target of branches.
ILabelSymbolLabel{get;}
...
...
@@ -289,13 +282,13 @@ public interface ILabelStatement : IStatement
publicinterfaceILabeledStatement:ILabelStatement
{
// Statement that has been labeled.
IStatementLabeled{get;}
IOperationLabeled{get;}
}
/// <summary>
/// Represents a C# goto, break, or continue statement, or a VB GoTo, Exit ***, or Continue *** statement
/// </summary>
publicinterfaceIBranchStatement:IStatement
publicinterfaceIBranchStatement:IOperation
{
// Label that is the target of the branch.
ILabelSymbolTarget{get;}
...
...
@@ -304,7 +297,7 @@ public interface IBranchStatement : IStatement
/// <summary>
/// Represents a C# throw or a VB Throw statement.
/// </summary>
publicinterfaceIThrowStatement:IStatement
publicinterfaceIThrowStatement:IOperation
{
// Thrown expression.
IExpressionThrownObject{get;}
...
...
@@ -313,18 +306,18 @@ public interface IThrowStatement : IStatement
/// <summary>
/// Represents a C# return or a VB Return statement.
/// </summary>
publicinterfaceIReturnStatement:IStatement
publicinterfaceIReturnStatement:IOperation
{
/// <summary>
/// Value to be returned.
/// </summary>
IExpressionReturned{get;}
IExpressionReturnedValue{get;}
}
/// <summary>
/// Represents a C# lock or a VB SyncLock statement.
/// </summary>
publicinterfaceILockStatement:IStatement
publicinterfaceILockStatement:IOperation
{
/// <summary>
/// Value to be locked.
...
...
@@ -333,13 +326,13 @@ public interface ILockStatement : IStatement
/// <summary>
/// Body of the lock, to be executed while holding the lock.
/// </summary>
IStatementBody{get;}
IOperationBody{get;}
}
/// <summary>
/// Represents a C# try or a VB Try statement.
/// </summary>
publicinterfaceITryStatement:IStatement
publicinterfaceITryStatement:IOperation
{
/// <summary>
/// Body of the try, over which the handlers are active.
...
...
@@ -381,12 +374,12 @@ public interface ICatch : IOperation
/// <summary>
/// Represents a C# using or VB Using statement.
/// </summary>
publicinterfaceIUsingStatement:IStatement
publicinterfaceIUsingStatement:IOperation
{
/// <summary>
/// Body of the using, over which the resources of the using are maintained.
/// </summary>
IStatementBody{get;}
IOperationBody{get;}
}
/// <summary>
...
...
@@ -414,7 +407,7 @@ public interface IUsingWithExpressionStatement : IUsingStatement
/// <summary>
/// Represents a C# fixed staement.
/// </summary>
publicinterfaceIFixedStatement:IStatement
publicinterfaceIFixedStatement:IOperation
{
/// <summary>
/// Variables to be fixed.
...
...
@@ -423,13 +416,13 @@ public interface IFixedStatement : IStatement
/// <summary>
/// Body of the fixed, over which the variables are fixed.
/// </summary>
IStatementBody{get;}
IOperationBody{get;}
}
/// <summary>
/// Represents a C# or VB statement that consists solely of an expression.
/// </summary>
publicinterfaceIExpressionStatement:IStatement
publicinterfaceIExpressionStatement:IOperation
{
/// <summary>
/// Expression of the statement.
...
...
@@ -440,15 +433,43 @@ public interface IExpressionStatement : IStatement
/// <summary>
/// Represents a VB With statement.
/// </summary>
publicinterfaceIWithStatement:IStatement
publicinterfaceIWithStatement:IOperation
{
/// <summary>
/// Body of the with.
/// </summary>
IStatementBody{get;}
IOperationBody{get;}
/// <summary>
/// Value to whose members leading-dot-qualified references within the with body bind.
/// </summary>
IExpressionValue{get;}
}
/// <summary>
/// Reprsents an empty statement.
/// </summary>
publicinterfaceIEmptyStatement:IOperation
{
}
/// <summary>
/// Represents a VB Stop statement.
/// </summary>
publicinterfaceIStopStatement:IOperation
{
}
/// <summary>
/// Represents a VB End statemnt.
/// </summary>
publicinterfaceIEndStatement:IOperation
{
}
/// <summary>
/// Represents a syntactically or semantically invalid C# or VB statement.