39 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (36)
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (1)
140
public override RefKind
RefKind
Lowering\SynthesizedMethodBaseSymbol.cs (1)
199
public sealed 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)
158
public override RefKind
RefKind
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
764
public override RefKind
RefKind
{ get; }
Symbols\Metadata\PE\PEMethodSymbol.cs (1)
634
public override RefKind
RefKind
=> Signature.ReturnParam.RefKind;
Symbols\ReducedExtensionMethodSymbol.cs (1)
479
public override RefKind
RefKind
Symbols\SignatureOnlyMethodSymbol.cs (1)
75
public override RefKind
RefKind
{ get { return _refKind; } }
Symbols\Source\LambdaSymbol.cs (1)
142
public override RefKind
RefKind
Symbols\Source\LocalFunctionSymbol.cs (1)
210
public override RefKind
RefKind
=> _refKind;
Symbols\Source\SourceConstructorSymbolBase.cs (1)
153
public override RefKind
RefKind
Symbols\Source\SourceDelegateMethodSymbol.cs (4)
234
public override RefKind
RefKind
309
public override RefKind
RefKind
391
public override RefKind
RefKind
437
public override RefKind
RefKind
=> _invoke.RefKind;
Symbols\Source\SourceDestructorSymbol.cs (1)
113
public override RefKind
RefKind
Symbols\Source\SourceEventAccessorSymbol.cs (1)
166
public override RefKind
RefKind
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
369
public override RefKind
RefKind
Symbols\Source\SourcePropertyAccessorSymbol.cs (1)
341
public sealed override RefKind
RefKind
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (1)
801
public sealed override RefKind
RefKind
Symbols\Synthesized\Records\SynthesizedRecordOrdinaryMethod.cs (1)
83
public sealed override RefKind
RefKind
=> RefKind.None;
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)
198
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedImplementationMethod.cs (1)
96
public 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)
216
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (1)
181
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (1)
146
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedStaticConstructor.cs (1)
127
public override RefKind
RefKind
Symbols\Wrapped\WrappedMethodSymbol.cs (1)
56
public override RefKind
RefKind
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (3)
Symbols\EEMethodSymbol.cs (1)
309
public override RefKind
RefKind
Symbols\PlaceholderMethodSymbol.cs (1)
154
public override RefKind
RefKind
Symbols\SynthesizedContextMethodSymbol.cs (1)
125
public override RefKind
RefKind
110 references to RefKind
Microsoft.CodeAnalysis.CSharp (77)
Binder\Binder.ValueChecks.cs (8)
1435
if (RequiresVariable(valueKind) && methodSymbol.
RefKind
== RefKind.None)
1450
if (RequiresAssignableVariable(valueKind) && methodSymbol.
RefKind
== RefKind.RefReadOnly)
1892
return method is {
RefKind
: not RefKind.None, ReturnType.IsRefLikeType: true };
3014
if (methodSymbol.
RefKind
== RefKind.None)
3093
if (methodSymbol.
RefKind
== RefKind.None)
3259
if (methodSymbol.
RefKind
== RefKind.None)
3339
if (methodSymbol.
RefKind
== RefKind.None)
4640
var methodRefKind = ((BoundCall)expression).Method.
RefKind
;
Binder\Binder_Conversions.cs (5)
1337
if (delegateOrFuncPtrMethod.
RefKind
!= method.
RefKind
)
1348
{
RefKind
: RefKind.None, ReturnsVoid: true } => method.ReturnsVoid,
1349
{
RefKind
: var destinationRefKind } => hasConversion(delegateType.TypeKind, Conversions, methodReturnType, delegateReturnType, method.
RefKind
, destinationRefKind, ref useSiteInfo),
Binder\Binder_Expressions.cs (2)
8832
getMethod.
RefKind
== RefKind.None &&
9194
var returnRefKind = returnRefKindOverride ?? methodSymbol.
RefKind
;
Binder\Binder_Statements.cs (2)
1347
!patternMethodSymbol.
RefKind
.IsManagedReference() ||
2870
refKind = symbol.
RefKind
;
Binder\ExecutableCodeBinder.cs (1)
136
RefKind refKind = iterator.
RefKind
;
Binder\InMethodBinder.cs (1)
127
RefKind refKind = _methodSymbol.
RefKind
;
Binder\Semantics\Conversions\Conversions.cs (3)
160
isMethodGroupConversion: true, returnRefKind: delegateInvokeMethodOpt.
RefKind
, returnType: delegateInvokeMethodOpt.ReturnType,
266
isMethodGroupConversion: true, returnRefKind: invokeMethodOpt?.
RefKind
, delegateOrFunctionPointerType: targetType);
295
returnRefKind: delegateInvokeMethod.
RefKind
,
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1412
if (invokeMethod.
RefKind
!= refKind ||
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
1375
var returnType = MethodGroupReturnType(binder, originalMethodGroup, fixedParameters, method.
RefKind
, isFunctionPointerResolution, ref useSiteInfo, in callingConventionInfo);
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
662
else if (method.
RefKind
!= returnRefKind)
BoundTree\BoundExpressionExtensions.cs (1)
34
return ((BoundCall)node).Method.
RefKind
;
BoundTree\UnboundLambda.cs (1)
625
refKind = invokeMethod.
RefKind
;
CodeGen\CodeGenerator.cs (1)
169
var slotConstraints = _method.
RefKind
== RefKind.None
CodeGen\EmitAddress.cs (1)
114
var methodRefKind = call.Method.
RefKind
;
CodeGen\EmitExpression.cs (5)
2000
return ((BoundCall)receiver).Method.
RefKind
!= RefKind.None;
2713
Debug.Assert(left.Method.
RefKind
!= RefKind.None);
2915
Debug.Assert(((BoundCall)expression).Method.
RefKind
!= RefKind.None);
3814
if (useKind == UseKind.UsedAsValue && method.
RefKind
!= RefKind.None)
3820
Debug.Assert(method.
RefKind
!= RefKind.None);
CodeGen\EmitStatement.cs (1)
848
var unexpectedTemp = this.EmitAddress(expressionOpt, this._method.
RefKind
== RefKind.RefReadOnly ? AddressKind.ReadOnlyStrict : AddressKind.Writeable);
CodeGen\Optimizer.cs (1)
1056
Debug.Assert(((BoundCall)lhs).Method.
RefKind
== RefKind.Ref, "only ref returning methods are assignable");
Compilation\CSharpCompilation.cs (1)
2048
if (method.
RefKind
!= RefKind.None)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
808
method.
RefKind
.Equals(other.
RefKind
) &&
Emitter\Model\MethodReference.cs (1)
113
return UnderlyingMethod.
RefKind
.IsManagedReference();
Emitter\Model\MethodSymbolAdapter.cs (1)
241
return AdaptedMethodSymbol.
RefKind
.IsManagedReference();
Lowering\AsyncRewriter\AsyncMethodBuilderMemberCollection.cs (1)
488
method.
RefKind
== RefKind.None &&
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
336
else if (method.
RefKind
!= RefKind.None)
Lowering\LocalRewriter\LocalRewriter.cs (1)
960
return ((BoundCall)expr).Method.
RefKind
!= RefKind.None;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
687
Debug.Assert(((BoundCall)originalLHS).Method.
RefKind
!= RefKind.None);
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
608
Debug.Assert(call.Method.
RefKind
!= RefKind.None);
Lowering\SynthesizedMethodBaseSymbol.cs (1)
201
get { return this.BaseMethod.
RefKind
; }
Lowering\SyntheticBoundNodeFactory.cs (2)
529
Debug.Assert(CurrentFunction.
RefKind
== RefKind.None);
534
return new BoundReturnStatement(Syntax, CurrentFunction.
RefKind
, expression, @checked: false) { WasCompilerGenerated = true };
Symbols\Compilation_WellKnownMembers.cs (1)
1149
return method.
RefKind
!= RefKind.None;
Symbols\MethodSymbol.cs (4)
214
return this.
RefKind
== RefKind.Ref;
225
Debug.Assert(this.
RefKind
!= RefKind.Out);
226
return this.
RefKind
== RefKind.RefReadOnly;
1153
AddSynthesizedAttribute(ref attributes, compilation.SynthesizeDynamicAttribute(type.Type, type.CustomModifiers.Length + this.RefCustomModifiers.Length, this.
RefKind
));
Symbols\PublicModel\MethodSymbol.cs (1)
326
RefKind IMethodSymbol.RefKind => _underlying.
RefKind
;
Symbols\ReducedExtensionMethodSymbol.cs (1)
481
get { return _reducedFrom.
RefKind
; }
Symbols\Retargeting\RetargetingSymbolTranslator.cs (1)
1045
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)
987
if (overridingMethod.
RefKind
!= overriddenMethod.
RefKind
)
1269
overrideMethod.
RefKind
,
1279
overrideMethod.
RefKind
== RefKind.Ref ? RefKind.Ref : RefKind.Out,
1392
(method.
RefKind
is RefKind.Ref or RefKind.RefReadOnly))
Symbols\Source\SourceMethodSymbolWithAttributes.cs (2)
954
checkAndReportManagedTypes(ReturnType, this.
RefKind
, returnTypeSyntax, isParam: false, diagnostics);
1085
if (this.
RefKind
!= RefKind.None)
Symbols\Source\SourceOrdinaryMethodOrUserDefinedOperatorSymbol.cs (2)
125
else if (
RefKind
== RefKind.RefReadOnly)
250
if (
RefKind
== RefKind.RefReadOnly)
Symbols\SymbolExtensions.cs (1)
494
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)
1604
interfaceMethod.
RefKind
,
1966
interfaceMemberRefKind = method.
RefKind
;
1985
hasRefReturnMismatch = ((MethodSymbol)closestMismatch).
RefKind
!= interfaceMemberRefKind;
Symbols\VarianceSafety.cs (2)
163
requireInputSafety: method.
RefKind
!= RefKind.None,
199
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)
3827
Assert.Equal(RefKind.RefReadOnly, interfaceMethod.
RefKind
);
3832
Assert.Equal(RefKind.None, classMethod.
RefKind
);
3856
Assert.Equal(RefKind.RefReadOnly, parentMethod.
RefKind
);
3861
Assert.Equal(RefKind.None, classMethod.
RefKind
);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (14)
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
);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (1)
Symbols\EEMethodSymbol.cs (1)
311
get { return this.SubstitutedSourceMethod.
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)
784
Assert.Equal(RefKind.Ref, d.DelegateInvokeMethod.
RefKind
);
785
Assert.Equal(RefKind.Ref, ((MethodSymbol)d.GetMembers("EndInvoke").Single()).
RefKind
);
801
Assert.Equal(RefKind.RefReadOnly, d.DelegateInvokeMethod.
RefKind
);
802
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)
405
Assert.Equal(RefKind.Ref, m.
RefKind
);
1759
Assert.Equal(RefKind.Ref, interfaceMethod.
RefKind
);
1767
Assert.Equal(RefKind.Ref, classMethod.
RefKind
);