24 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (24)
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (1)
140
public override RefKind
RefKind
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.ConstructorSymbol.cs (1)
53
public override RefKind
RefKind
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.EqualsMethodSymbol.cs (1)
38
public override RefKind
RefKind
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.GetHashCodeMethodSymbol.cs (1)
42
public override RefKind
RefKind
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.PropertyAccessorSymbol.cs (1)
39
public override RefKind
RefKind
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.ToStringMethodSymbol.cs (1)
42
public override RefKind
RefKind
Symbols\ErrorMethodSymbol.cs (1)
160
public override RefKind
RefKind
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
767
public override RefKind
RefKind
{ get; }
Symbols\Metadata\PE\PEMethodSymbol.cs (1)
662
public override RefKind
RefKind
=> Signature.ReturnParam.RefKind;
Symbols\ReducedExtensionMethodSymbol.cs (1)
489
public override RefKind
RefKind
Symbols\SignatureOnlyMethodSymbol.cs (1)
75
public override RefKind
RefKind
{ get { return _refKind; } }
Symbols\Source\LambdaSymbol.cs (1)
146
public override RefKind
RefKind
Symbols\Source\LocalFunctionSymbol.cs (1)
243
public override RefKind
RefKind
=> _refKind;
Symbols\Source\SourceMemberMethodSymbol.cs (1)
1087
public sealed override RefKind
RefKind
=> this.flags.RefKind;
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (1)
163
public override RefKind
RefKind
{ get; }
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (1)
115
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (1)
206
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedImplementationMethod.cs (1)
96
public sealed override RefKind
RefKind
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (1)
149
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedInteractiveInitializerMethod.cs (1)
114
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (1)
217
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (1)
181
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedStaticConstructor.cs (1)
127
public override RefKind
RefKind
Symbols\Wrapped\WrappedMethodSymbol.cs (1)
56
public override RefKind
RefKind
124 references to RefKind
Microsoft.CodeAnalysis.CSharp (91)
Binder\Binder.ValueChecks.cs (19)
54
Method is {
RefKind
: not RefKind.None, ReturnType: { } returnType } &&
1678
if (RequiresVariable(valueKind) && methodSymbol.
RefKind
== RefKind.None)
1693
if (RequiresAssignableVariable(valueKind) && methodSymbol.
RefKind
== RefKind.RefReadOnly)
3531
if (methodSymbol.
RefKind
== RefKind.None)
3614
if (methodSymbol.
RefKind
== RefKind.None)
3693
conversion.Conversion.Method.
RefKind
== RefKind.None));
3700
unaryMethod.
RefKind
== RefKind.None));
3707
binaryMethod.
RefKind
== RefKind.None));
3713
logicalOperator.LogicalOperator.
RefKind
== RefKind.None));
3720
compoundMethod.
RefKind
== RefKind.None));
3727
incrementMethod.
RefKind
== RefKind.None));
3855
if (methodSymbol.
RefKind
== RefKind.None)
3938
if (methodSymbol.
RefKind
== RefKind.None)
4070
conversion.Conversion.Method.
RefKind
== RefKind.None);
4077
unaryMethod.
RefKind
== RefKind.None));
4084
binaryMethod.
RefKind
== RefKind.None));
4090
logicalOperator.LogicalOperator.
RefKind
== RefKind.None));
4097
compoundMethod.
RefKind
== RefKind.None));
4104
incrementMethod.
RefKind
== RefKind.None));
Binder\Binder_Conversions.cs (5)
2891
if (delegateOrFuncPtrMethod.
RefKind
!= method.
RefKind
)
2902
{
RefKind
: RefKind.None, ReturnsVoid: true } => method.ReturnsVoid,
2903
{
RefKind
: var destinationRefKind } => hasConversion(
2908
sourceRefKind: method.
RefKind
,
Binder\Binder_Expressions.cs (2)
10545
getMethod.
RefKind
== RefKind.None &&
11187
var returnRefKind = returnRefKindOverride ?? methodSymbol.
RefKind
;
Binder\Binder_Statements.cs (2)
1338
!patternMethodSymbol.
RefKind
.IsManagedReference() ||
2985
refKind = symbol.
RefKind
;
Binder\ExecutableCodeBinder.cs (1)
141
RefKind refKind = iterator.
RefKind
;
Binder\ForEachLoopBinder.cs (1)
881
builder.CurrentPropertyGetter?.
RefKind
== (wellKnownSpan == WellKnownType.System_ReadOnlySpan_T ? RefKind.RefReadOnly : RefKind.Ref)) ||
Binder\InMethodBinder.cs (1)
128
RefKind refKind = _methodSymbol.
RefKind
;
Binder\LockBinder.cs (1)
80
if (enterScopeMethod is not { ReturnsVoid: false,
RefKind
: RefKind.None })
Binder\Semantics\Conversions\Conversions.cs (3)
261
acceptOnlyMethods: true, returnRefKind: delegateInvokeMethodOpt.
RefKind
, returnType: delegateInvokeMethodOpt.ReturnType,
383
isMethodGroupConversion: true, returnRefKind: invokeMethodOpt?.
RefKind
, delegateOrFunctionPointerType: targetType);
412
returnRefKind: delegateInvokeMethod.
RefKind
,
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1487
if (invokeMethod.
RefKind
!= refKind ||
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
1492
var returnType = MethodGroupReturnType(binder, originalMethodGroup, fixedParameters, method.
RefKind
, isFunctionPointerResolution, ref useSiteInfo, in callingConventionInfo);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
893
else if (method.
RefKind
!= returnRefKind)
BoundTree\BoundExpressionExtensions.cs (1)
34
return ((BoundCall)node).Method.
RefKind
;
BoundTree\UnboundLambda.cs (1)
666
refKind = invokeMethod.
RefKind
;
CodeGen\CodeGenerator.cs (1)
169
var slotConstraints = _method.
RefKind
== RefKind.None
CodeGen\CodeGenerator_HasHome.cs (1)
98
var methodRefKind = ((BoundCall)expression).Method.
RefKind
;
CodeGen\CodeGenerator_RefSafety.cs (1)
18
returnRefKind: node.Method.
RefKind
,
CodeGen\EmitAddress.cs (1)
179
var methodRefKind = call.Method.
RefKind
;
CodeGen\EmitExpression.cs (6)
1747
var methodRefKind = call.Method.
RefKind
;
2236
return ((BoundCall)receiver).Method.
RefKind
!= RefKind.None;
2959
Debug.Assert(left.Method.
RefKind
!= RefKind.None);
3161
Debug.Assert(((BoundCall)expression).Method.
RefKind
!= RefKind.None);
4122
if (useKind == UseKind.UsedAsValue && method.
RefKind
!= RefKind.None)
4128
Debug.Assert(method.
RefKind
!= RefKind.None);
CodeGen\EmitStatement.cs (1)
873
var unexpectedTemp = this.EmitAddress(expressionOpt, this._method.
RefKind
== RefKind.RefReadOnly ? AddressKind.ReadOnlyStrict : AddressKind.Writeable);
CodeGen\Optimizer.cs (1)
1066
Debug.Assert(((BoundCall)lhs).Method.
RefKind
== RefKind.Ref, "only ref returning methods are assignable");
Compilation\CSharpCompilation.cs (1)
2250
if (method.
RefKind
!= RefKind.None)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
609
method.
RefKind
.Equals(other.
RefKind
) &&
Emitter\Model\MethodReference.cs (1)
105
return UnderlyingMethod.
RefKind
.IsManagedReference();
Emitter\Model\MethodSymbolAdapter.cs (1)
236
return AdaptedMethodSymbol.
RefKind
.IsManagedReference();
Lowering\AsyncRewriter\AsyncMethodBuilderMemberCollection.cs (1)
488
method.
RefKind
== RefKind.None &&
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
356
else if (method.
RefKind
!= RefKind.None)
Lowering\LocalRewriter\LocalRewriter.cs (1)
1087
return ((BoundCall)expr).Method.
RefKind
!= RefKind.None;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
794
Debug.Assert(((BoundCall)originalLHS).Method.
RefKind
!= RefKind.None);
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
649
Debug.Assert(call.Method.
RefKind
!= RefKind.None);
Lowering\SynthesizedMethodBaseSymbol.cs (1)
43
refKind: baseMethod.
RefKind
,
Lowering\SyntheticBoundNodeFactory.cs (2)
574
Debug.Assert(CurrentFunction.
RefKind
== RefKind.None);
579
return new BoundReturnStatement(Syntax, CurrentFunction.
RefKind
, expression, @checked: false) { WasCompilerGenerated = true };
Symbols\Compilation_WellKnownMembers.cs (1)
1179
return method.
RefKind
!= RefKind.None;
Symbols\MethodSymbol.cs (4)
220
return this.
RefKind
== RefKind.Ref;
231
Debug.Assert(this.
RefKind
!= RefKind.Out);
232
return this.
RefKind
== RefKind.RefReadOnly;
1167
AddSynthesizedAttribute(ref attributes, compilation.SynthesizeDynamicAttribute(type.Type, type.CustomModifiers.Length + this.RefCustomModifiers.Length, this.
RefKind
));
Symbols\PublicModel\MethodSymbol.cs (1)
327
RefKind IMethodSymbol.RefKind => _underlying.
RefKind
;
Symbols\ReducedExtensionMethodSymbol.cs (1)
491
get { return _reducedFrom.
RefKind
; }
Symbols\Retargeting\RetargetingSymbolTranslator.cs (1)
1022
method.
RefKind
,
Symbols\Source\CustomModifierUtils.cs (1)
43
destinationMethod.
RefKind
!= RefKind.None ? constructedSourceMethod.RefCustomModifiers : ImmutableArray<CustomModifier>.Empty;
Symbols\Source\LocalFunctionOrSourceMemberMethodSymbol.cs (1)
29
TypeWithAnnotations elementType = InMethodBinder.GetIteratorElementTypeFromReturnType(DeclaringCompilation,
RefKind
, ReturnType, errorLocation: null, diagnostics: null);
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (5)
992
if (overridingMethod.
RefKind
!= overriddenMethod.
RefKind
)
1273
overrideMethod.
RefKind
,
1283
overrideMethod.
RefKind
== RefKind.Ref ? RefKind.Ref : RefKind.Out,
1409
(method.
RefKind
is RefKind.Ref or RefKind.RefReadOnly))
Symbols\Source\SourceMethodSymbolWithAttributes.cs (2)
1395
checkAndReportManagedTypes(ReturnType, this.
RefKind
, returnTypeSyntax, isParam: false, diagnostics);
1526
if (this.
RefKind
!= RefKind.None)
Symbols\SymbolExtensions.cs (1)
487
refKind = method.
RefKind
;
Symbols\Synthesized\SynthesizedImplementationMethod.cs (1)
98
get { return _interfaceMethod.
RefKind
; }
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (1)
185
return _overriddenAccessor.
RefKind
;
Symbols\TypeSymbol.cs (3)
1624
interfaceMethod.
RefKind
,
2026
interfaceMemberRefKind = method.
RefKind
;
2045
hasRefReturnMismatch = ((MethodSymbol)closestMismatch).
RefKind
!= interfaceMemberRefKind;
Symbols\VarianceSafety.cs (2)
166
requireInputSafety: method.
RefKind
!= RefKind.None,
202
requireInputSafety: hasSetter || !(property.GetMethod?.
RefKind
== RefKind.None),
Symbols\Wrapped\WrappedMethodSymbol.cs (1)
60
return UnderlyingMethod.
RefKind
;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (4)
Emit\InAttributeModifierTests.cs (4)
3834
Assert.Equal(RefKind.RefReadOnly, interfaceMethod.
RefKind
);
3839
Assert.Equal(RefKind.None, classMethod.
RefKind
);
3863
Assert.Equal(RefKind.RefReadOnly, parentMethod.
RefKind
);
3868
Assert.Equal(RefKind.None, classMethod.
RefKind
);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (15)
Attributes\AttributeTests_RefReadOnly.cs (14)
38
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
92
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
120
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
501
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
537
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
561
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
598
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
652
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
686
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
725
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
784
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
819
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
2346
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
2393
Assert.Equal(RefKind.RefReadOnly, method.
RefKind
);
RefReadonlyParameterTests.cs (1)
483
Assert.Equal(RefKind.Ref, m.
RefKind
);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (14)
Symbols\InterfaceImplementationTests.cs (2)
2032
Assert.Equal(RefKind.Ref, interfaceMethod.
RefKind
);
2033
Assert.Equal(RefKind.Ref, baseMethod.
RefKind
);
Symbols\Metadata\PE\LoadingMethods.cs (1)
376
Assert.Equal(RefKind.Ref, byrefReturnMethod.
RefKind
);
Symbols\Source\DelegateTests.cs (4)
783
Assert.Equal(RefKind.Ref, d.DelegateInvokeMethod.
RefKind
);
784
Assert.Equal(RefKind.Ref, ((MethodSymbol)d.GetMembers("EndInvoke").Single()).
RefKind
);
800
Assert.Equal(RefKind.RefReadOnly, d.DelegateInvokeMethod.
RefKind
);
801
Assert.Equal(RefKind.RefReadOnly, ((MethodSymbol)d.GetMembers("EndInvoke").Single()).
RefKind
);
Symbols\Source\ExpressionBodiedPropertyTests.cs (4)
511
Assert.Equal(RefKind.Ref, p.GetMethod.
RefKind
);
534
Assert.Equal(RefKind.RefReadOnly, p.GetMethod.
RefKind
);
561
Assert.Equal(RefKind.RefReadOnly, p.GetMethod.
RefKind
);
589
Assert.Equal(RefKind.RefReadOnly, p.GetMethod.
RefKind
);
Symbols\Source\MethodTests.cs (3)
406
Assert.Equal(RefKind.Ref, m.
RefKind
);
1760
Assert.Equal(RefKind.Ref, interfaceMethod.
RefKind
);
1768
Assert.Equal(RefKind.Ref, classMethod.
RefKind
);