Base:
property
RefKind
Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol.RefKind
4 writes to RefKind
Microsoft.CodeAnalysis.CSharp (4)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (4)
453
RefKind
= refKind;
498
RefKind
= refKind;
528
RefKind
= refKind;
551
RefKind
= getRefKind(retInfo, RefCustomModifiers, RefKind.RefReadOnly, RefKind.Ref);
43 references to RefKind
Microsoft.CodeAnalysis.CSharp (32)
Binder\Binder.ValueChecks.cs (2)
3035
if (methodSymbol.
RefKind
== RefKind.None)
3367
if (signature.
RefKind
== RefKind.None)
Binder\Binder_Invocation.cs (1)
2040
returnRefKind: funcPtr.Signature.
RefKind
);
Binder\Semantics\Conversions\ConversionsBase.cs (3)
3183
return sourceSig.
RefKind
== destinationSig.
RefKind
3184
&& hasConversion(sourceSig.
RefKind
, sourceSig.ReturnTypeWithAnnotations, destinationSig.ReturnTypeWithAnnotations, ref useSiteInfo);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (4)
1754
return sourceSignature.
RefKind
== targetSignature.
RefKind
2237
if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.
RefKind
== RefKind.None)
2587
if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.
RefKind
== RefKind.None)
CodeGen\EmitAddress.cs (1)
127
var funcPtrRefKind = funcPtrInvocation.FunctionPointer.Signature.
RefKind
;
CodeGen\EmitExpression.cs (3)
2003
return ((BoundFunctionPointerInvocation)receiver).FunctionPointer.Signature.
RefKind
!= RefKind.None;
2724
Debug.Assert(left.FunctionPointer.Signature.
RefKind
!= RefKind.None);
2920
Debug.Assert(((BoundFunctionPointerInvocation)expression).FunctionPointer.Signature.
RefKind
!= RefKind.None);
CodeGen\Optimizer.cs (1)
1060
Debug.Assert(((BoundFunctionPointerInvocation)lhs).FunctionPointer.Signature.
RefKind
== RefKind.Ref, "only ref returning function pointers are assignable");
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (4)
879
ValidateFunctionPointerParamOrReturn(sig.ReturnTypeWithAnnotations, sig.
RefKind
, sig.RefCustomModifiers, allowOut: false);
880
ValidateFunctionPointerParamOrReturn(otherSig.ReturnTypeWithAnnotations, otherSig.
RefKind
, otherSig.RefCustomModifiers, allowOut: false);
881
if (sig.
RefKind
!= otherSig.
RefKind
|| !AreTypesEqual(sig.ReturnTypeWithAnnotations, otherSig.ReturnTypeWithAnnotations))
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
691
Debug.Assert(((BoundFunctionPointerInvocation)originalLHS).FunctionPointer.Signature.
RefKind
!= RefKind.None);
Symbols\Compilation_WellKnownMembers.cs (1)
975
handle(sig.
RefKind
, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (10)
338
this.
RefKind
,
348
Debug.Assert(
RefKind
== signature.
RefKind
);
349
var returnVariance =
RefKind
== RefKind.None ? variance : VarianceKind.None;
552
Debug.Assert(
RefKind
!= RefKind.Out);
645
var modifiersToSearch =
RefKind
!= RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers;
668
var modifiersToSearch =
RefKind
!= RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers;
721
|| !FunctionPointerTypeSymbol.RefKindEquals(compareKind,
RefKind
, other.
RefKind
)
758
=> Hash.Combine(ReturnType, Hash.Combine(((int)CallingConvention).GetHashCode(), ((int)FunctionPointerTypeSymbol.GetRefKindForHashCode(
RefKind
)).GetHashCode()));
Symbols\Metadata\PE\DynamicTypeDecoder.cs (1)
354
var (transformedReturnWithAnnotations, madeChanges) = handle(ref this, sig.
RefKind
, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (8)
Symbols\FunctionPointerTypeSymbolTests.cs (8)
45
Assert.Equal(expectedKind, pointerType.Signature.
RefKind
);
173
=> Assert.Equal(expected, ((FunctionPointerTypeSymbol)actual.Type).Signature.
RefKind
);
199
Assert.Equal(RefKind.Ref, firstSignature.
RefKind
);
200
Assert.Equal(RefKind.RefReadOnly, secondSignature.
RefKind
);
913
if (p1.Signature.
RefKind
== p2.Signature.
RefKind
)
921
Assert.Equal(p1.Signature.
RefKind
, p2.Signature.
RefKind
);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (3)
FunctionPointerUtilities.cs (3)
278
Assert.Equal(returnVerifier.RefKind, signature.
RefKind
);
279
switch (signature.
RefKind
)
294
Assert.True(false, $"Cannot have a return ref kind of {signature.
RefKind
}");