Base:
property
RefKind
Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol.RefKind
4 writes to RefKind
Microsoft.CodeAnalysis.CSharp (4)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (4)
455RefKind = refKind; 500RefKind = refKind; 530RefKind = refKind; 553RefKind = getRefKind(retInfo, RefCustomModifiers, RefKind.RefReadOnly, RefKind.Ref, requiresLocationAllowed: false);
46 references to RefKind
Microsoft.CodeAnalysis.CSharp (35)
Binder\Binder.ValueChecks.cs (2)
3554if (methodSymbol.RefKind == RefKind.None) 4000if (signature.RefKind == RefKind.None)
Binder\Binder_Invocation.cs (1)
2480returnRefKind: funcPtr.Signature.RefKind);
Binder\Semantics\Conversions\ConversionsBase.cs (3)
3410return sourceSig.RefKind == destinationSig.RefKind 3411&& hasConversion(sourceSig.RefKind, sourceSig.ReturnTypeWithAnnotations, destinationSig.ReturnTypeWithAnnotations, ref useSiteInfo);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (4)
1931return sourceSignature.RefKind == targetSignature.RefKind 2459if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None) 2809if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None)
CodeGen\CodeGenerator_RefSafety.cs (1)
41returnRefKind: method.RefKind,
CodeGen\EmitAddress.cs (1)
123var funcPtrRefKind = funcPtrInvocation.FunctionPointer.Signature.RefKind;
CodeGen\EmitExpression.cs (3)
2239return ((BoundFunctionPointerInvocation)receiver).FunctionPointer.Signature.RefKind != RefKind.None; 2970Debug.Assert(left.FunctionPointer.Signature.RefKind != RefKind.None); 3166Debug.Assert(((BoundFunctionPointerInvocation)expression).FunctionPointer.Signature.RefKind != RefKind.None);
CodeGen\Optimizer.cs (1)
1070Debug.Assert(((BoundFunctionPointerInvocation)lhs).FunctionPointer.Signature.RefKind == RefKind.Ref, "only ref returning function pointers are assignable");
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (4)
682ValidateFunctionPointerParamOrReturn(sig.ReturnTypeWithAnnotations, sig.RefKind, sig.RefCustomModifiers, allowOut: false); 683ValidateFunctionPointerParamOrReturn(otherSig.ReturnTypeWithAnnotations, otherSig.RefKind, otherSig.RefCustomModifiers, allowOut: false); 684if (sig.RefKind != otherSig.RefKind || !AreTypesEqual(sig.ReturnTypeWithAnnotations, otherSig.ReturnTypeWithAnnotations))
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
798Debug.Assert(((BoundFunctionPointerInvocation)originalLHS).FunctionPointer.Signature.RefKind != RefKind.None);
Symbols\Compilation_WellKnownMembers.cs (1)
1005handle(sig.RefKind, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (10)
340this.RefKind, 350Debug.Assert(RefKind == signature.RefKind); 351var returnVariance = RefKind == RefKind.None ? variance : VarianceKind.None; 554Debug.Assert(RefKind != RefKind.Out); 648var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers; 671var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers; 724|| !FunctionPointerTypeSymbol.RefKindEquals(compareKind, RefKind, other.RefKind) 761=> Hash.Combine(ReturnType, Hash.Combine(((int)CallingConvention).GetHashCode(), ((int)FunctionPointerTypeSymbol.GetRefKindForHashCode(RefKind)).GetHashCode()));
Symbols\Metadata\PE\DynamicTypeDecoder.cs (1)
354var (transformedReturnWithAnnotations, madeChanges) = handle(ref this, sig.RefKind, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (2)
349if (signature.RefKind != RefKind.None) 777appendRefKind(signature.RefKind, builder);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (8)
Symbols\FunctionPointerTypeSymbolTests.cs (8)
45Assert.Equal(expectedKind, pointerType.Signature.RefKind); 173=> Assert.Equal(expected, ((FunctionPointerTypeSymbol)actual.Type).Signature.RefKind); 199Assert.Equal(RefKind.Ref, firstSignature.RefKind); 200Assert.Equal(RefKind.RefReadOnly, secondSignature.RefKind); 913if (p1.Signature.RefKind == p2.Signature.RefKind) 921Assert.Equal(p1.Signature.RefKind, p2.Signature.RefKind);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (3)
FunctionPointerUtilities.cs (3)
280Assert.Equal(returnVerifier.RefKind, signature.RefKind); 281switch (signature.RefKind) 296Assert.True(false, $"Cannot have a return ref kind of {signature.RefKind}");