C# Class ICSharpCode.NRefactory.CSharp.Resolver.CSharpResolver

Contains the main resolver logic.
Show file Open project: icsharpcode/NRefactory Class Usage Examples

Private Properties

Property Type Description
AddArgumentNamesIfNecessary IList
AdjustArrayAccessArguments void
BinaryNumericPromotion bool
BinaryOperatorResolveResult ResolveResult
CSharpPrimitiveCast object
CSharpResolver System
CastTo ResolveResult
Clone CSharpResolver
Convert ResolveResult
Convert ResolveResult
CreateOverloadResolution OverloadResolution
CreateParameters List
CreateResolveResultForUserDefinedOperator ResolveResult
GetAllExtensionMethods IList>
GetEnumUnderlyingType IType
GetExtensionMethods IEnumerable
GetOverloadableOperatorName string
GetOverloadableOperatorName string
GetUserDefinedOperatorCandidates IEnumerable
GuessParameterName string
HandleEnumComparison ResolveResult
HandleEnumOperator ResolveResult
HandleEnumSubtraction ResolveResult
HasType bool
ITypeResolveContext ITypeResolveContext
ITypeResolveContext ITypeResolveContext
IsBetterConditionalConversion bool
IsComparisonOperator bool
IsEligibleExtensionMethod bool
IsNullableTypeOrNonValueType bool
IsSigned bool
LiftUserDefinedOperator LiftedUserDefinedOperator
LiftUserDefinedOperators void
LookInCurrentType ResolveResult
LookInCurrentUsingScope ResolveResult
LookInUsingScopeNamespace ResolveResult
MakeNullable IType
MakeParameterName string
PointerArithmeticOperator CSharpOperators.BinaryOperatorMethod
PointerArithmeticOperator CSharpOperators.BinaryOperatorMethod
PointerArithmeticOperator CSharpOperators.BinaryOperatorMethod
ResolveExternAlias ResolveResult
ResolveInvocation ResolveResult
ResolveMemberAccessOnNamespace ResolveResult
ResolveMemberType ResolveResult
ResolveNullCoalescingOperator ResolveResult
TopLevelTypeDefinitionIsAccessible bool
TryConvert bool
TryConvertEnum bool
UnaryNumericPromotion ResolveResult
UnaryOperatorResolveResult OperatorResolveResult
WithContext CSharpResolver
WithLocalVariableStack CSharpResolver
WithObjectInitializerStack CSharpResolver

Public Methods

Method Description
AddVariable ( IVariable variable ) : CSharpResolver

Adds a new variable or lambda parameter to the current block.

CSharpResolver ( ICSharpCode.NRefactory.CSharp.TypeSystem.CSharpTypeResolveContext context ) : System
CSharpResolver ( ICompilation compilation ) : System
CreateMemberLookup ( ) : ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup

Creates a MemberLookup instance using this resolver's settings.

CreateMemberLookup ( NameLookupMode lookupMode ) : ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup

Creates a MemberLookup instance using this resolver's settings.

GetDefaultValue ( IType type ) : object
GetExtensionMethods ( IType targetType, string name = null, IList typeArguments = null, bool substituteInferredTypes = false ) : List>

Gets the extension methods that are called 'name' and are applicable with a first argument type of 'targetType'.

The results are stored in nested lists because they are grouped by using scope. That is, for "using SomeExtensions; namespace X { using MoreExtensions; ... }", the return value will be new List { new List { all extensions from MoreExtensions }, new List { all extensions from SomeExtensions } }

GetExtensionMethods ( string name = null, IList typeArguments = null ) : List>

Gets all extension methods that are available in the current context.

The results are stored in nested lists because they are grouped by using scope. That is, for "using SomeExtensions; namespace X { using MoreExtensions; ... }", the return value will be new List { new List { all extensions from MoreExtensions }, new List { all extensions from SomeExtensions } }

IsEligibleExtensionMethod ( IType targetType, IMethod method, bool useTypeInference, IType &outInferredTypes ) : bool

Checks whether the specified extension method is eligible on the target type.

IsVariableReferenceWithSameType ( ResolveResult rr, string identifier, TypeResolveResult &trr ) : bool
LookupSimpleNameOrTypeName ( string identifier, IList typeArguments, NameLookupMode lookupMode ) : ResolveResult
PopBlock ( ) : CSharpResolver

Closes the current scope for local variables; removing all variables in that scope.

PopLastVariable ( ) : CSharpResolver

Removes the variable that was just added.

PopObjectInitializer ( ) : CSharpResolver
PushBlock ( ) : CSharpResolver

Opens a new scope for local variables.

PushObjectInitializer ( ResolveResult initializedObject ) : CSharpResolver

Pushes the type of the object that is currently being initialized.

ResolveAlias ( string identifier ) : ResolveResult

Looks up an alias (identifier in front of :: operator)

ResolveArrayCreation ( IType elementType, ResolveResult sizeArguments, ResolveResult initializerElements = null ) : ArrayCreateResolveResult

Resolves an array creation.

ResolveArrayCreation ( IType elementType, int sizeArguments, ResolveResult initializerElements = null ) : ArrayCreateResolveResult

Resolves an array creation.

ResolveAssignment ( AssignmentOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult
ResolveBaseReference ( ) : ResolveResult

Resolves 'base'.

ResolveBinaryOperator ( BinaryOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult
ResolveCast ( IType targetType, ResolveResult expression ) : ResolveResult
ResolveCondition ( ResolveResult input ) : ResolveResult

Converts the input to bool using the rules for boolean expressions. That is, operator true is used if a regular conversion to bool is not possible.

ResolveConditionFalse ( ResolveResult input ) : ResolveResult

Converts the negated input to bool using the rules for boolean expressions. Computes !(bool)input if the implicit cast to bool is valid; otherwise computes input.operator false().

ResolveConditional ( ResolveResult condition, ResolveResult trueExpression, ResolveResult falseExpression ) : ResolveResult
ResolveDefaultValue ( IType type ) : ResolveResult
ResolveIdentifierInObjectInitializer ( string identifier ) : ResolveResult
ResolveIndexer ( ResolveResult target, ResolveResult arguments, string argumentNames = null ) : ResolveResult

Resolves an indexer access.

ResolveInvocation ( ResolveResult target, ResolveResult arguments, string argumentNames = null ) : ResolveResult

Resolves an invocation.

ResolveMemberAccess ( ResolveResult target, string identifier, IList typeArguments, NameLookupMode lookupMode = NameLookupMode.Expression ) : ResolveResult
ResolveObjectCreation ( IType type, ResolveResult arguments, string argumentNames = null, bool allowProtectedAccess = false, IList initializerStatements = null ) : ResolveResult

Resolves an object creation.

ResolvePrimitive ( object value ) : ResolveResult
ResolveSimpleName ( string identifier, IList typeArguments, bool isInvocationTarget = false ) : ResolveResult
ResolveSizeOf ( IType type ) : ResolveResult

Resolves 'sizeof(type)'.

ResolveThisReference ( ) : ResolveResult

Resolves 'this'.

ResolveTypeOf ( IType referencedType ) : ResolveResult
ResolveUnaryOperator ( UnaryOperatorType op, ResolveResult expression ) : ResolveResult
WithCheckForOverflow ( bool checkForOverflow ) : CSharpResolver

Sets whether the current context is checked.

WithCurrentMember ( IMember member ) : CSharpResolver

Sets the current member definition.

Don't forget to also set CurrentTypeDefinition when setting CurrentMember; setting one of the properties does not automatically set the other.

WithCurrentTypeDefinition ( ITypeDefinition typeDefinition ) : CSharpResolver

Sets the current type definition.

WithCurrentUsingScope ( ResolvedUsingScope usingScope ) : CSharpResolver

Sets the current using scope that is used to look up identifiers as class names.

WithIsWithinLambdaExpression ( bool isWithinLambdaExpression ) : CSharpResolver

Sets whether the resolver is currently within a lambda expression.

Private Methods

Method Description
AddArgumentNamesIfNecessary ( ResolveResult arguments, string argumentNames ) : IList
AdjustArrayAccessArguments ( ResolveResult arguments ) : void

Converts all arguments to int,uint,long or ulong.

BinaryNumericPromotion ( bool isNullable, ResolveResult &lhs, ResolveResult &rhs, bool allowNullableConstants ) : bool
BinaryOperatorResolveResult ( IType resultType, ResolveResult lhs, BinaryOperatorType op, ResolveResult rhs, bool isLifted = false ) : ResolveResult
CSharpPrimitiveCast ( TypeCode targetType, object input ) : object
CSharpResolver ( ICompilation compilation, CSharpConversions conversions, ICSharpCode.NRefactory.CSharp.TypeSystem.CSharpTypeResolveContext context, bool checkForOverflow, bool isWithinLambdaExpression, TypeDefinitionCache currentTypeDefinitionCache, ImmutableStack localVariableStack, ObjectInitializerContext objectInitializerStack ) : System
CastTo ( TypeCode targetType, bool isNullable, ResolveResult expression, bool allowNullableConstants ) : ResolveResult
Clone ( ) : CSharpResolver
Convert ( ResolveResult rr, IType targetType ) : ResolveResult
Convert ( ResolveResult rr, IType targetType, Conversion c ) : ResolveResult
CreateOverloadResolution ( ResolveResult arguments, string argumentNames = null, IType typeArguments = null ) : OverloadResolution
CreateParameters ( ResolveResult arguments, string argumentNames ) : List
CreateResolveResultForUserDefinedOperator ( OverloadResolution r, System operatorType ) : ResolveResult
GetAllExtensionMethods ( ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup lookup ) : IList>

Gets all extension methods available in the current using scope. This list includes inaccessible methods.

GetEnumUnderlyingType ( IType enumType ) : IType
GetExtensionMethods ( ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup lookup, INamespace ns ) : IEnumerable
GetOverloadableOperatorName ( BinaryOperatorType op ) : string
GetOverloadableOperatorName ( UnaryOperatorType op ) : string
GetUserDefinedOperatorCandidates ( IType type, string operatorName ) : IEnumerable
GuessParameterName ( ResolveResult rr ) : string
HandleEnumComparison ( BinaryOperatorType op, IType enumType, bool isNullable, ResolveResult lhs, ResolveResult rhs ) : ResolveResult

Handle the case where an enum value is compared with another enum value bool operator op(E x, E y);

HandleEnumOperator ( bool isNullable, IType enumType, BinaryOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult

Handle the following enum operators: E operator +(E x, U y); E operator +(U x, E y); E operator –(E x, U y); E operator &(E x, E y); E operator |(E x, E y); E operator ^(E x, E y);

HandleEnumSubtraction ( bool isNullable, IType enumType, ResolveResult lhs, ResolveResult rhs ) : ResolveResult

Handle the case where an enum value is subtracted from another enum value U operator –(E x, E y);

HasType ( ResolveResult r ) : bool
ITypeResolveContext ( IMember member ) : ITypeResolveContext
ITypeResolveContext ( ITypeDefinition typeDefinition ) : ITypeResolveContext
IsBetterConditionalConversion ( Conversion c1, Conversion c2 ) : bool
IsComparisonOperator ( IMethod m ) : bool
IsEligibleExtensionMethod ( ICompilation compilation, CSharpConversions conversions, IType targetType, IMethod method, bool useTypeInference, IType &outInferredTypes ) : bool
IsNullableTypeOrNonValueType ( IType type ) : bool
IsSigned ( TypeCode code, ResolveResult rr ) : bool
LiftUserDefinedOperator ( IMethod m ) : LiftedUserDefinedOperator
LiftUserDefinedOperators ( List operators ) : void
LookInCurrentType ( string identifier, IList typeArguments, NameLookupMode lookupMode, bool parameterizeResultType ) : ResolveResult
LookInCurrentUsingScope ( string identifier, IList typeArguments, bool isInUsingDeclaration, bool parameterizeResultType ) : ResolveResult
LookInUsingScopeNamespace ( ResolvedUsingScope usingScope, INamespace n, string identifier, IList typeArguments, bool parameterizeResultType ) : ResolveResult
MakeNullable ( IType type, bool isNullable ) : IType
MakeParameterName ( string variableName ) : string
PointerArithmeticOperator ( IType resultType, IType inputType1, IType inputType2 ) : CSharpOperators.BinaryOperatorMethod
PointerArithmeticOperator ( IType resultType, IType inputType1, KnownTypeCode inputType2 ) : CSharpOperators.BinaryOperatorMethod
PointerArithmeticOperator ( IType resultType, KnownTypeCode inputType1, IType inputType2 ) : CSharpOperators.BinaryOperatorMethod
ResolveExternAlias ( string alias ) : ResolveResult
ResolveInvocation ( ResolveResult target, ResolveResult arguments, string argumentNames, bool allowOptionalParameters ) : ResolveResult
ResolveMemberAccessOnNamespace ( NamespaceResolveResult nrr, string identifier, IList typeArguments, bool parameterizeResultType ) : ResolveResult
ResolveMemberType ( ResolveResult target, string identifier, IList typeArguments ) : ResolveResult
ResolveNullCoalescingOperator ( ResolveResult lhs, ResolveResult rhs ) : ResolveResult
TopLevelTypeDefinitionIsAccessible ( ITypeDefinition typeDef ) : bool
TryConvert ( ResolveResult &rr, IType targetType ) : bool
TryConvertEnum ( ResolveResult &rr, IType targetType, bool &isNullable, ResolveResult &enumRR, bool allowConversionFromConstantZero = true ) : bool

UnaryNumericPromotion ( UnaryOperatorType op, IType &type, bool isNullable, ResolveResult expression ) : ResolveResult
UnaryOperatorResolveResult ( IType resultType, UnaryOperatorType op, ResolveResult expression, bool isLifted = false ) : OperatorResolveResult
WithContext ( CSharpTypeResolveContext newContext ) : CSharpResolver
WithLocalVariableStack ( ImmutableStack stack ) : CSharpResolver
WithObjectInitializerStack ( ObjectInitializerContext stack ) : CSharpResolver

Method Details

AddVariable() public method

Adds a new variable or lambda parameter to the current block.
public AddVariable ( IVariable variable ) : CSharpResolver
variable IVariable
return CSharpResolver

CSharpResolver() public method

public CSharpResolver ( ICSharpCode.NRefactory.CSharp.TypeSystem.CSharpTypeResolveContext context ) : System
context ICSharpCode.NRefactory.CSharp.TypeSystem.CSharpTypeResolveContext
return System

CSharpResolver() public method

public CSharpResolver ( ICompilation compilation ) : System
compilation ICompilation
return System

CreateMemberLookup() public method

Creates a MemberLookup instance using this resolver's settings.
public CreateMemberLookup ( ) : ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup
return ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup

CreateMemberLookup() public method

Creates a MemberLookup instance using this resolver's settings.
public CreateMemberLookup ( NameLookupMode lookupMode ) : ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup
lookupMode NameLookupMode
return ICSharpCode.NRefactory.CSharp.Resolver.MemberLookup

GetDefaultValue() public static method

public static GetDefaultValue ( IType type ) : object
type IType
return object

GetExtensionMethods() public method

Gets the extension methods that are called 'name' and are applicable with a first argument type of 'targetType'.
The results are stored in nested lists because they are grouped by using scope. That is, for "using SomeExtensions; namespace X { using MoreExtensions; ... }", the return value will be new List { new List { all extensions from MoreExtensions }, new List { all extensions from SomeExtensions } }
public GetExtensionMethods ( IType targetType, string name = null, IList typeArguments = null, bool substituteInferredTypes = false ) : List>
targetType IType Type of the 'this' argument
name string Name of the extension method. Pass null to retrieve all extension methods.
typeArguments IList Explicitly provided type arguments. /// An empty list will return all matching extension method definitions; /// a non-empty list will return s for all extension methods /// with the matching number of type parameters.
substituteInferredTypes bool /// Specifies whether to produce a /// when type arguments could be inferred from . This parameter /// is only used for inferred types and has no effect if is non-empty. ///
return List>

GetExtensionMethods() public method

Gets all extension methods that are available in the current context.
The results are stored in nested lists because they are grouped by using scope. That is, for "using SomeExtensions; namespace X { using MoreExtensions; ... }", the return value will be new List { new List { all extensions from MoreExtensions }, new List { all extensions from SomeExtensions } }
public GetExtensionMethods ( string name = null, IList typeArguments = null ) : List>
name string Name of the extension method. Pass null to retrieve all extension methods.
typeArguments IList Explicitly provided type arguments. /// An empty list will return all matching extension method definitions; /// a non-empty list will return s for all extension methods /// with the matching number of type parameters.
return List>

IsEligibleExtensionMethod() public static method

Checks whether the specified extension method is eligible on the target type.
public static IsEligibleExtensionMethod ( IType targetType, IMethod method, bool useTypeInference, IType &outInferredTypes ) : bool
targetType IType Target type that is passed as first argument to the extension method.
method IMethod The extension method.
useTypeInference bool Whether to perform type inference for the method. /// Use false if is already parameterized (e.g. when type arguments were given explicitly). /// Otherwise, use true. ///
outInferredTypes IType If the method is generic and is true, /// and at least some of the type arguments could be inferred, this parameter receives the inferred type arguments. /// Since only the type for the first parameter is considered, not all type arguments may be inferred. /// If an array is returned, any slot with an uninferred type argument will be set to the method's /// corresponding type parameter. ///
return bool

IsVariableReferenceWithSameType() public method

public IsVariableReferenceWithSameType ( ResolveResult rr, string identifier, TypeResolveResult &trr ) : bool
rr ResolveResult
identifier string
trr TypeResolveResult
return bool

LookupSimpleNameOrTypeName() public method

public LookupSimpleNameOrTypeName ( string identifier, IList typeArguments, NameLookupMode lookupMode ) : ResolveResult
identifier string
typeArguments IList
lookupMode NameLookupMode
return ResolveResult

PopBlock() public method

Closes the current scope for local variables; removing all variables in that scope.
public PopBlock ( ) : CSharpResolver
return CSharpResolver

PopLastVariable() public method

Removes the variable that was just added.
public PopLastVariable ( ) : CSharpResolver
return CSharpResolver

PopObjectInitializer() public method

public PopObjectInitializer ( ) : CSharpResolver
return CSharpResolver

PushBlock() public method

Opens a new scope for local variables.
public PushBlock ( ) : CSharpResolver
return CSharpResolver

PushObjectInitializer() public method

Pushes the type of the object that is currently being initialized.
public PushObjectInitializer ( ResolveResult initializedObject ) : CSharpResolver
initializedObject ResolveResult
return CSharpResolver

ResolveAlias() public method

Looks up an alias (identifier in front of :: operator)
public ResolveAlias ( string identifier ) : ResolveResult
identifier string
return ResolveResult

ResolveArrayCreation() public method

Resolves an array creation.
public ResolveArrayCreation ( IType elementType, ResolveResult sizeArguments, ResolveResult initializerElements = null ) : ArrayCreateResolveResult
elementType IType /// The array element type. /// Pass null to resolve an implicitly-typed array creation. ///
sizeArguments ResolveResult /// The size arguments. /// The length of this array will be used as the number of dimensions of the array type. /// The resolver may mutate this array to wrap elements in s! ///
initializerElements ResolveResult /// The initializer elements. May be null if no array initializer was specified. /// The resolver may mutate this array to wrap elements in s! ///
return ArrayCreateResolveResult

ResolveArrayCreation() public method

Resolves an array creation.
public ResolveArrayCreation ( IType elementType, int sizeArguments, ResolveResult initializerElements = null ) : ArrayCreateResolveResult
elementType IType /// The array element type. /// Pass null to resolve an implicitly-typed array creation. ///
sizeArguments int /// The size arguments. /// The length of this array will be used as the number of dimensions of the array type. /// Negative values will be treated as errors. ///
initializerElements ResolveResult /// The initializer elements. May be null if no array initializer was specified. /// The resolver may mutate this array to wrap elements in s! ///
return ArrayCreateResolveResult

ResolveAssignment() public method

public ResolveAssignment ( AssignmentOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult
op AssignmentOperatorType
lhs ResolveResult
rhs ResolveResult
return ResolveResult

ResolveBaseReference() public method

Resolves 'base'.
public ResolveBaseReference ( ) : ResolveResult
return ResolveResult

ResolveBinaryOperator() public method

public ResolveBinaryOperator ( BinaryOperatorType op, ResolveResult lhs, ResolveResult rhs ) : ResolveResult
op BinaryOperatorType
lhs ResolveResult
rhs ResolveResult
return ResolveResult

ResolveCast() public method

public ResolveCast ( IType targetType, ResolveResult expression ) : ResolveResult
targetType IType
expression ResolveResult
return ResolveResult

ResolveCondition() public method

Converts the input to bool using the rules for boolean expressions. That is, operator true is used if a regular conversion to bool is not possible.
public ResolveCondition ( ResolveResult input ) : ResolveResult
input ResolveResult
return ResolveResult

ResolveConditionFalse() public method

Converts the negated input to bool using the rules for boolean expressions. Computes !(bool)input if the implicit cast to bool is valid; otherwise computes input.operator false().
public ResolveConditionFalse ( ResolveResult input ) : ResolveResult
input ResolveResult
return ResolveResult

ResolveConditional() public method

public ResolveConditional ( ResolveResult condition, ResolveResult trueExpression, ResolveResult falseExpression ) : ResolveResult
condition ResolveResult
trueExpression ResolveResult
falseExpression ResolveResult
return ResolveResult

ResolveDefaultValue() public method

public ResolveDefaultValue ( IType type ) : ResolveResult
type IType
return ResolveResult

ResolveIdentifierInObjectInitializer() public method

public ResolveIdentifierInObjectInitializer ( string identifier ) : ResolveResult
identifier string
return ResolveResult

ResolveIndexer() public method

Resolves an indexer access.
public ResolveIndexer ( ResolveResult target, ResolveResult arguments, string argumentNames = null ) : ResolveResult
target ResolveResult Target expression.
arguments ResolveResult /// Arguments passed to the indexer. /// The resolver may mutate this array to wrap elements in s! ///
argumentNames string /// The argument names. Pass the null string for positional arguments. ///
return ResolveResult

ResolveInvocation() public method

Resolves an invocation.
public ResolveInvocation ( ResolveResult target, ResolveResult arguments, string argumentNames = null ) : ResolveResult
target ResolveResult The target of the invocation. Usually a MethodGroupResolveResult.
arguments ResolveResult /// Arguments passed to the method. /// The resolver may mutate this array to wrap elements in s! ///
argumentNames string /// The argument names. Pass the null string for positional arguments. ///
return ResolveResult

ResolveMemberAccess() public method

public ResolveMemberAccess ( ResolveResult target, string identifier, IList typeArguments, NameLookupMode lookupMode = NameLookupMode.Expression ) : ResolveResult
target ResolveResult
identifier string
typeArguments IList
lookupMode NameLookupMode
return ResolveResult

ResolveObjectCreation() public method

Resolves an object creation.
public ResolveObjectCreation ( IType type, ResolveResult arguments, string argumentNames = null, bool allowProtectedAccess = false, IList initializerStatements = null ) : ResolveResult
type IType Type of the object to create.
arguments ResolveResult /// Arguments passed to the constructor. /// The resolver may mutate this array to wrap elements in s! ///
argumentNames string /// The argument names. Pass the null string for positional arguments. ///
allowProtectedAccess bool /// Whether to allow calling protected constructors. /// This should be false except when resolving constructor initializers. ///
initializerStatements IList /// Statements for Objects/Collections initializer. /// ///
return ResolveResult

ResolvePrimitive() public method

public ResolvePrimitive ( object value ) : ResolveResult
value object
return ResolveResult

ResolveSimpleName() public method

public ResolveSimpleName ( string identifier, IList typeArguments, bool isInvocationTarget = false ) : ResolveResult
identifier string
typeArguments IList
isInvocationTarget bool
return ResolveResult

ResolveSizeOf() public method

Resolves 'sizeof(type)'.
public ResolveSizeOf ( IType type ) : ResolveResult
type IType
return ResolveResult

ResolveThisReference() public method

Resolves 'this'.
public ResolveThisReference ( ) : ResolveResult
return ResolveResult

ResolveTypeOf() public method

public ResolveTypeOf ( IType referencedType ) : ResolveResult
referencedType IType
return ResolveResult

ResolveUnaryOperator() public method

public ResolveUnaryOperator ( UnaryOperatorType op, ResolveResult expression ) : ResolveResult
op UnaryOperatorType
expression ResolveResult
return ResolveResult

WithCheckForOverflow() public method

Sets whether the current context is checked.
public WithCheckForOverflow ( bool checkForOverflow ) : CSharpResolver
checkForOverflow bool
return CSharpResolver

WithCurrentMember() public method

Sets the current member definition.
Don't forget to also set CurrentTypeDefinition when setting CurrentMember; setting one of the properties does not automatically set the other.
public WithCurrentMember ( IMember member ) : CSharpResolver
member IMember
return CSharpResolver

WithCurrentTypeDefinition() public method

Sets the current type definition.
public WithCurrentTypeDefinition ( ITypeDefinition typeDefinition ) : CSharpResolver
typeDefinition ITypeDefinition
return CSharpResolver

WithCurrentUsingScope() public method

Sets the current using scope that is used to look up identifiers as class names.
public WithCurrentUsingScope ( ResolvedUsingScope usingScope ) : CSharpResolver
usingScope ResolvedUsingScope
return CSharpResolver

WithIsWithinLambdaExpression() public method

Sets whether the resolver is currently within a lambda expression.
public WithIsWithinLambdaExpression ( bool isWithinLambdaExpression ) : CSharpResolver
isWithinLambdaExpression bool
return CSharpResolver