Symbols\Metadata\PE\PEMethodSymbol.cs (38)
112public MethodKind MethodKind
116return (MethodKind)((_bits >> MethodKindOffset) & MethodKindMask);
154Debug.Assert(EnumUtilities.ContainsAllValues<MethodKind>(MethodKindMask));
178public void InitializeMethodKind(MethodKind methodKind)
602private bool IsDestructor => this.MethodKind == MethodKind.Destructor;
756internal bool SetAssociatedProperty(PEPropertySymbol propertySymbol, MethodKind methodKind)
758Debug.Assert((methodKind == MethodKind.PropertyGet) || (methodKind == MethodKind.PropertySet));
766internal bool SetAssociatedEvent(PEEventSymbol eventSymbol, MethodKind methodKind)
768Debug.Assert((methodKind == MethodKind.EventAdd) || (methodKind == MethodKind.EventRemove));
772private bool SetAssociatedPropertyOrEvent(Symbol propertyOrEventSymbol, MethodKind methodKind)
785_packedFlags.MethodKind == default(MethodKind) ||
786_packedFlags.MethodKind == MethodKind.Ordinary ||
787_packedFlags.MethodKind == MethodKind.ExplicitInterfaceImplementation);
932if (this.MethodKind == MethodKind.Ordinary && IsValidExtensionMethodSignature()
960: this.MethodKind == MethodKind.Ordinary
1056public override MethodKind MethodKind
1123private MethodKind ComputeMethodKind()
1147return MethodKind.StaticConstructor;
1152return MethodKind.Constructor;
1156return MethodKind.Ordinary;
1184return IsValidUserDefinedOperatorSignature(2) ? MethodKind.UserDefinedOperator : MethodKind.Ordinary;
1196return IsValidUserDefinedOperatorSignature(1) ? MethodKind.UserDefinedOperator : MethodKind.Ordinary;
1200return IsValidUserDefinedOperatorSignature(1) ? MethodKind.Conversion : MethodKind.Ordinary;
1210return MethodKind.Ordinary;
1222return MethodKind.Destructor;
1228return MethodKind.DelegateInvoke;
1239return MethodKind.ExplicitInterfaceImplementation;
1242return MethodKind.Ordinary;
1276method.MethodKind == MethodKind.Destructor);
1368this.MethodKind == MethodKind.PropertySet &&
1423var diag = PEUtilities.DeriveCompilerFeatureRequiredAttributeDiagnostic(this, containingModule, Handle, allowedFeatures: MethodKind == MethodKind.Constructor ? CompilerFeatureRequiredFeatures.RequiredMembers : CompilerFeatureRequiredFeatures.None, decoder);
1511Debug.Assert(MethodKind == MethodKind.Constructor);
1533var result = ObsoleteAttributeHelpers.GetObsoleteDataFromMetadata(_handle, (PEModuleSymbol)ContainingModule, ignoreByRefLikeMarker: false, ignoreRequiredMemberMarker: MethodKind == MethodKind.Constructor);
Symbols\Source\SourceDelegateMethodSymbol.cs (5)
26MethodKind methodKind,
222: base(delegateType, voidType, syntax, MethodKind.Constructor, DeclarationModifiers.Public)
271: base(delegateType, returnType, syntax, MethodKind.DelegateInvoke, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
370: base((SourceNamedTypeSymbol)invoke.ContainingType, iAsyncResultType, syntax, MethodKind.Ordinary, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
413: base((SourceNamedTypeSymbol)invoke.ContainingType, invoke.ReturnTypeWithAnnotations, syntax, MethodKind.Ordinary, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (9)
34MethodKind methodKind,
60bool isExplicitInterfaceImplementation = methodKind == MethodKind.ExplicitInterfaceImplementation;
82Debug.Assert(this.MethodKind != MethodKind.UserDefinedOperator, "SourceUserDefinedOperatorSymbolBase overrides this");
127CheckModifiers(MethodKind == MethodKind.ExplicitInterfaceImplementation, isVararg, HasAnyBody, locations[0], diagnostics);
203private (DeclarationModifiers mods, bool hasExplicitAccessMod) MakeModifiers(MethodKind methodKind, bool isReadOnly, bool hasBody, Location location, BindingDiagnosticBag diagnostics)
206bool isExplicitInterfaceImplementation = methodKind == MethodKind.ExplicitInterfaceImplementation;
294private static DeclarationModifiers AddImpliedModifiers(DeclarationModifiers mods, bool containingTypeIsInterface, MethodKind methodKind, bool hasBody)
301methodKind == MethodKind.ExplicitInterfaceImplementation);
303else if (methodKind == MethodKind.ExplicitInterfaceImplementation)
Binding\DocumentationCommentCrefBinder.vb (27)
904CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.TrueOperatorName, opInfo, useSiteInfo)
910CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.FalseOperatorName, opInfo, useSiteInfo)
916CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator,
925CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.UnaryPlusOperatorName, opInfo, useSiteInfo)
928CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.AdditionOperatorName, opInfo, useSiteInfo)
934CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.UnaryNegationOperatorName, opInfo, useSiteInfo)
937CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.SubtractionOperatorName, opInfo, useSiteInfo)
943CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.MultiplyOperatorName, opInfo, useSiteInfo)
949CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.DivisionOperatorName, opInfo, useSiteInfo)
955CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.IntegerDivisionOperatorName, opInfo, useSiteInfo)
961CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.ModulusOperatorName, opInfo, useSiteInfo)
967CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.ExponentOperatorName, opInfo, useSiteInfo)
973CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.EqualityOperatorName, opInfo, useSiteInfo)
979CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.InequalityOperatorName, opInfo, useSiteInfo)
985CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.LessThanOperatorName, opInfo, useSiteInfo)
991CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.GreaterThanOperatorName, opInfo, useSiteInfo)
997CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.LessThanOrEqualOperatorName, opInfo, useSiteInfo)
1003CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.GreaterThanOrEqualOperatorName, opInfo, useSiteInfo)
1009CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.LikeOperatorName, opInfo, useSiteInfo)
1015CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.ConcatenateOperatorName, opInfo, useSiteInfo)
1021CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator,
1030CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator,
1039CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator, WellKnownMemberNames.ExclusiveOrOperatorName, opInfo, useSiteInfo)
1045CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator,
1054CollectOperatorsAndConversionsInType(type, symbols, MethodKind.UserDefinedOperator,
1063CollectOperatorsAndConversionsInType(type, symbols, MethodKind.Conversion,
1076kind As MethodKind,
Semantics\Operators.vb (29)
2814Debug.Assert(method.MethodKind = MethodKind.Conversion)
2836CollectUserDefinedOperators(source, destination, MethodKind.Conversion,
2850opKind As MethodKind,
2911opKind As MethodKind,
2955CollectUserDefinedOperators(argument.Type, Nothing, MethodKind.UserDefinedOperator,
2969CollectUserDefinedOperators(argument.Type, Nothing, MethodKind.UserDefinedOperator,
2992CollectUserDefinedOperators(argument.Type, Nothing, MethodKind.UserDefinedOperator,
2997CollectUserDefinedOperators(argument.Type, Nothing, MethodKind.UserDefinedOperator,
3002CollectUserDefinedOperators(argument.Type, Nothing, MethodKind.UserDefinedOperator,
3028CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3033CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3038CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3043CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3048CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3053CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3058CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3063CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3068CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3073CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3078CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3083CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3088CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3093CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3098CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3104CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3111CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3116CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3122CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
3128CollectUserDefinedOperators(left.Type, right.Type, MethodKind.UserDefinedOperator,
SymbolDisplay\SymbolDisplayVisitor.Members.vb (40)
170If symbol.MethodKind = MethodKind.ReducedExtension AndAlso format.ExtensionMethodStyle = SymbolDisplayExtensionMethodStyle.StaticMethod Then
172ElseIf symbol.MethodKind <> MethodKind.ReducedExtension AndAlso format.ExtensionMethodStyle = SymbolDisplayExtensionMethodStyle.InstanceMethod Then
197Case MethodKind.Constructor, MethodKind.StaticConstructor
201Case MethodKind.PropertyGet
212Case MethodKind.PropertySet
223Case MethodKind.EventAdd,
224MethodKind.EventRemove,
225MethodKind.EventRaise
233symbol.MethodKind = MethodKind.EventAdd,
236symbol.MethodKind = MethodKind.EventRemove,
244Case MethodKind.Conversion
259Case MethodKind.UserDefinedOperator, MethodKind.BuiltinOperator
270Case MethodKind.Ordinary,
271MethodKind.DelegateInvoke,
272MethodKind.ReducedExtension,
273MethodKind.AnonymousFunction
296If symbol.MethodKind = MethodKind.ReducedExtension Then
311Case MethodKind.Ordinary, MethodKind.DelegateInvoke, MethodKind.DeclareMethod
314Case MethodKind.ReducedExtension
319Case MethodKind.PropertyGet,
320MethodKind.PropertySet,
321MethodKind.EventAdd,
322MethodKind.EventRemove,
323MethodKind.EventRaise
338Case MethodKind.Constructor, MethodKind.StaticConstructor
345Case MethodKind.UserDefinedOperator, MethodKind.BuiltinOperator
361Case MethodKind.Conversion
370Case MethodKind.AnonymousFunction
383If symbol.MethodKind = MethodKind.BuiltinOperator Then
427AddParametersIfRequired(isExtensionMethod:=method.IsExtensionMethod AndAlso method.MethodKind <> MethodKind.ReducedExtension,
436Case MethodKind.Constructor,
437MethodKind.StaticConstructor
687Return vbMethod IsNot Nothing AndAlso vbMethod.MethodKind = MethodKind.DeclareMethod
701DirectCast(symbol, IMethodSymbol).MethodKind = MethodKind.AnonymousFunction OrElse
Symbols\Metadata\PE\PEMethodSymbol.vb (48)
81Public Property MethodKind As MethodKind
83Return CType((_bits >> s_methodKindOffset) And s_methodKindMask, MethodKind)
85Set(value As MethodKind)
149Public Sub InitializeMethodKind(methodKind As MethodKind)
327Public Overrides ReadOnly Property MethodKind As MethodKind
344Private Function ComputeMethodKind() As MethodKind
366Return MethodKind.SharedConstructor
369Return MethodKind.Constructor
373Return MethodKind.Ordinary
387Return MethodKind.Ordinary
392Return MethodKind.DelegateInvoke
395Return MethodKind.Ordinary
400Return _packedFlags.MethodKind = MethodKind.Constructor AndAlso ParameterCount = 0
415_packedFlags.MethodKind = MethodKind.Constructor
422Private Function ComputeMethodKindForPotentialOperatorOrConversion(opInfo As OverloadResolution.OperatorInfo) As MethodKind
428Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.Conversion, WellKnownMemberNames.ExplicitConversionName, True)
430Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.Conversion, WellKnownMemberNames.ImplicitConversionName, True)
432Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
435Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
437Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, WellKnownMemberNames.OnesComplementOperatorName, False)
461Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
465Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
467Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, WellKnownMemberNames.BitwiseAndOperatorName, False)
471Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
473Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, WellKnownMemberNames.BitwiseOrOperatorName, False)
477Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
479Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, WellKnownMemberNames.LeftShiftOperatorName, False)
483Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, Nothing, False)
485Return ComputeMethodKindForPotentialOperatorOrConversion(opInfo, MethodKind.UserDefinedOperator, WellKnownMemberNames.RightShiftOperatorName, False)
502potentialMethodKind As MethodKind,
505) As MethodKind
506Debug.Assert(potentialMethodKind = MethodKind.Conversion OrElse potentialMethodKind = MethodKind.UserDefinedOperator)
508Dim result As MethodKind = potentialMethodKind
530Case MethodKind.Ordinary
543If potentialMethodKind = MethodKind.Conversion AndAlso Not outputType.IsSameTypeIgnoringAll(contender.ReturnType) Then
559result = MethodKind.Ordinary
563contender._packedFlags.InitializeMethodKind(MethodKind.Ordinary)
647Me.MethodKind = MethodKind.Ordinary AndAlso
868Me.MethodKind = MethodKind.PropertySet AndAlso
951Friend Function SetAssociatedProperty(propertySymbol As PEPropertySymbol, methodKind As MethodKind) As Boolean
952Debug.Assert((methodKind = MethodKind.PropertyGet) OrElse (methodKind = MethodKind.PropertySet))
960Friend Function SetAssociatedEvent(eventSymbol As PEEventSymbol, methodKind As MethodKind) As Boolean
961Debug.Assert((methodKind = MethodKind.EventAdd) OrElse (methodKind = MethodKind.EventRemove) OrElse (methodKind = MethodKind.EventRaise))
965Private Function SetAssociatedPropertyOrEvent(propertyOrEventSymbol As Symbol, methodKind As MethodKind) As Boolean
Symbols\Source\OverrideHidingHelper.vb (17)
497Case MethodKind.LambdaMethod, MethodKind.Constructor, MethodKind.SharedConstructor
499Case MethodKind.Conversion, MethodKind.DelegateInvoke, MethodKind.UserDefinedOperator, MethodKind.Ordinary, MethodKind.DeclareMethod,
500MethodKind.EventAdd, MethodKind.EventRaise, MethodKind.EventRemove,
501MethodKind.PropertyGet, MethodKind.PropertySet
626(DirectCast(DirectCast(overridingSym, Symbol), MethodSymbol).MethodKind = MethodKind.PropertyGet OrElse
627DirectCast(DirectCast(overridingSym, Symbol), MethodSymbol).MethodKind = MethodKind.PropertySet)))
688(DirectCast(DirectCast(overridingSym, Symbol), MethodSymbol).MethodKind = MethodKind.PropertyGet OrElse
689DirectCast(DirectCast(overridingSym, Symbol), MethodSymbol).MethodKind = MethodKind.PropertySet)))
Symbols\Source\SourceMethodSymbol.vb (30)
629Public Overrides ReadOnly Property MethodKind As MethodKind
1274Debug.Assert(Me.MethodKind <> MethodKind.EventAdd,
1499If Not (Me.MethodKind <> MethodKind.Ordinary AndAlso Me.MethodKind <> MethodKind.DeclareMethod) AndAlso
1603If Me.MethodKind <> MethodKind.Ordinary AndAlso Me.MethodKind <> MethodKind.DeclareMethod Then
1775Case MethodKind.DeclareMethod
1779Case MethodKind.PropertyGet, MethodKind.PropertySet
1783Case MethodKind.EventAdd, MethodKind.EventRaise, MethodKind.EventRemove
1867Debug.Assert(MethodKind <> MethodKind.DeclareMethod)
1958Case MethodKind.Constructor,
1959MethodKind.SharedConstructor,
1960MethodKind.PropertyGet,
1961MethodKind.PropertySet,
1962MethodKind.EventAdd,
1963MethodKind.EventRemove,
1964MethodKind.EventRaise,
1965MethodKind.Conversion,
1966MethodKind.UserDefinedOperator
2243Case MethodKind.Constructor,
2244MethodKind.SharedConstructor,
2245MethodKind.EventRemove,
2246MethodKind.EventRaise
2251Case MethodKind.EventAdd
2257Case MethodKind.PropertyGet, MethodKind.PropertySet
2279If Me.MethodKind = MethodKind.UserDefinedOperator Then
Symbols\Source\SourceNamedTypeSymbol_GroupClass.vb (2)
396ConflictsWithExistingMemberOrType(binder.GetAccessorName(propertyName, MethodKind.PropertyGet, False), membersBuilder, nestedTypes, conflictsWith) OrElse
397(disposeMethod.Length > 0 AndAlso ConflictsWithExistingMemberOrType(binder.GetAccessorName(propertyName, MethodKind.PropertySet, isWinMd), membersBuilder, nestedTypes, conflictsWith)) OrElse
Symbols\Symbol_Attributes.vb (12)
74Case MethodKind.Constructor,
75MethodKind.SharedConstructor
78Case MethodKind.Ordinary,
79MethodKind.DeclareMethod,
80MethodKind.UserDefinedOperator,
81MethodKind.Conversion,
82MethodKind.PropertyGet,
83MethodKind.PropertySet,
84MethodKind.EventAdd,
85MethodKind.EventRaise,
86MethodKind.EventRemove,
87MethodKind.DelegateInvoke
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.UnitTests (1)