8 instantiations of FunctionPointerTypeSymbol
Microsoft.CodeAnalysis.CSharp (8)
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (8)
20=> new FunctionPointerTypeSymbol( 41=> new FunctionPointerTypeSymbol(FunctionPointerMethodSymbol.CreateFromPartsForTest(callingConvention, returnType, refCustomModifiers, returnRefKind, parameterTypes, parameterRefCustomModifiers, parameterRefKinds, compilation)); 54=> new FunctionPointerTypeSymbol(FunctionPointerMethodSymbol.CreateFromParts(callingConvention, callingConventionModifiers, returnType, returnRefKind, parameterTypes, parameterRefKinds, compilation)); 57=> new FunctionPointerTypeSymbol( 65=> new FunctionPointerTypeSymbol(Signature.SubstituteParameterSymbols(substitutedReturnType, substitutedParameterTypes, refCustomModifiers, paramRefCustomModifiers)); 140result = madeChanges ? new FunctionPointerTypeSymbol(newSignature) : this; 167return new FunctionPointerTypeSymbol(mergedSignature); 178return new FunctionPointerTypeSymbol(substitutedSignature);
105 references to FunctionPointerTypeSymbol
Microsoft.CodeAnalysis.CSharp (105)
Binder\Binder_Conversions.cs (2)
2960else if (targetType is FunctionPointerTypeSymbol functionPointerType) 3533FunctionPointerTypeSymbol { Signature: { } signature } => signature,
Binder\Binder_Crefs.cs (1)
760MethodSymbol signature = ((FunctionPointerTypeSymbol)type).Signature;
Binder\Binder_Invocation.cs (3)
2536RoslynDebug.Assert(boundExpression.Type is FunctionPointerTypeSymbol); 2538var funcPtr = (FunctionPointerTypeSymbol)boundExpression.Type;
Binder\Binder_Symbols.cs (1)
472FunctionPointerTypeSymbol.CreateFromSource(
Binder\Semantics\AccessCheck.cs (2)
167var funcPtr = (FunctionPointerTypeSymbol)symbol;
Binder\Semantics\Conversions\Conversions.cs (2)
115public override Conversion GetMethodGroupFunctionPointerConversion(BoundMethodGroup source, FunctionPointerTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 293if (type is FunctionPointerTypeSymbol { Signature: { } signature })
Binder\Semantics\Conversions\ConversionsBase.cs (4)
69public abstract Conversion GetMethodGroupFunctionPointerConversion(BoundMethodGroup source, FunctionPointerTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo); 1136case BoundKind.UnconvertedAddressOfOperator when destination is FunctionPointerTypeSymbol funcPtrType: 3398if (!(source is FunctionPointerTypeSymbol { Signature: { } sourceSig }) 3399|| !(destination is FunctionPointerTypeSymbol { Signature: { } destinationSig }))
Binder\Semantics\Conversions\TypeConversions.cs (1)
42public override Conversion GetMethodGroupFunctionPointerConversion(BoundMethodGroup source, FunctionPointerTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (2)
712if ((object)leftType != null || (object)rightType != null || left.Type is FunctionPointerTypeSymbol || right.Type is FunctionPointerTypeSymbol)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (9)
563Debug.Assert(delegateOrFunctionPointerType.IsDelegateType() || delegateOrFunctionPointerType is FunctionPointerTypeSymbol); 1088FunctionPointerTypeSymbol f => f.Signature, 1469FunctionPointerTypeSymbol f => (f.Signature, true), 1895else if (source.Type is FunctionPointerTypeSymbol { Signature: { ParameterCount: int sourceParameterCount } sourceSignature } && 1896target.Type is FunctionPointerTypeSymbol { Signature: { ParameterCount: int targetParameterCount } targetSignature } && 2429if (source is not FunctionPointerTypeSymbol { Signature: { } sourceSignature } || target is not FunctionPointerTypeSymbol { Signature: { } targetSignature }) 2779if (source is not FunctionPointerTypeSymbol { Signature: { } sourceSignature } || target is not FunctionPointerTypeSymbol { Signature: { } targetSignature })
Binder\Semantics\OverloadResolution\OverloadResolution.cs (1)
717Debug.Assert(unmanagedCallingConventionTypes.All(u => FunctionPointerTypeSymbol.IsCallingConventionModifier((NamedTypeSymbol)u)));
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (2)
572ReportWrongCallingConvention(location, diagnostics, symbols, firstSupported, ((FunctionPointerTypeSymbol)delegateOrFunctionPointerType).Signature); 695else if (delegateOrFunctionPointerType is FunctionPointerTypeSymbol)
BoundTree\BoundFunctionPointerInvocation.cs (3)
12public FunctionPointerTypeSymbol FunctionPointer 16Debug.Assert(InvokedExpression.Type is FunctionPointerTypeSymbol); 17return (FunctionPointerTypeSymbol)InvokedExpression.Type;
CodeGen\CodeGenerator.cs (1)
382private void EmitSignatureToken(FunctionPointerTypeSymbol symbol, SyntaxNode syntaxNode)
Compilation\CSharpCompilation.cs (2)
4312return FunctionPointerTypeSymbol.CreateFromParts( 4329if (!FunctionPointerTypeSymbol.IsCallingConventionModifier(internalType) || @this.Assembly.CorLibrary != internalType.ContainingAssembly)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
401public override Symbol? VisitFunctionPointerType(FunctionPointerTypeSymbol symbol) 684private bool AreFunctionPointerTypesEqual(FunctionPointerTypeSymbol type, FunctionPointerTypeSymbol other) 777return AreFunctionPointerTypesEqual((FunctionPointerTypeSymbol)type, (FunctionPointerTypeSymbol)other); 923public override Symbol VisitFunctionPointerType(FunctionPointerTypeSymbol symbol)
Emitter\Model\FunctionPointerTypeSymbolAdapter.cs (2)
125internal FunctionPointerTypeSymbolAdapter(FunctionPointerTypeSymbol underlyingFunctionPointerTypeSymbol) 131internal FunctionPointerTypeSymbol AdaptedFunctionPointerTypeSymbol { get; }
Emitter\Model\PEModuleBuilder.cs (2)
1313return Translate((FunctionPointerTypeSymbol)typeSymbol); 1607internal Cci.IFunctionPointerTypeReference Translate(FunctionPointerTypeSymbol symbol)
FlowAnalysis\NullableWalker.cs (2)
9890FunctionPointerTypeSymbol { Signature: { Parameters: { } parameters } signature } => (signature, parameters), 13766Debug.Assert(ResultType is TypeWithState { Type: FunctionPointerTypeSymbol { }, State: NullableFlowState.NotNull });
Operations\CSharpOperationFactory.cs (1)
1074if (boundConversion.Type is FunctionPointerTypeSymbol)
Symbols\AbstractTypeMap.cs (3)
113result = SubstituteFunctionPointerType((FunctionPointerTypeSymbol)previous); 239private FunctionPointerTypeSymbol SubstituteFunctionPointerType(FunctionPointerTypeSymbol f)
Symbols\Compilation_WellKnownMembers.cs (2)
1008handleFunctionPointerType((FunctionPointerTypeSymbol)type, transformFlagsBuilder, addCustomModifierFlags); 1036static void handleFunctionPointerType(FunctionPointerTypeSymbol funcPtr, ArrayBuilder<bool> transformFlagsBuilder, bool addCustomModifierFlags)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (4)
657if (FunctionPointerTypeSymbol.IsCallingConventionModifier(modifier.ModifierSymbol)) 681if (FunctionPointerTypeSymbol.IsCallingConventionModifier(((CSharpCustomModifier)modifier).ModifierSymbol)) 724|| !FunctionPointerTypeSymbol.RefKindEquals(compareKind, RefKind, other.RefKind) 761=> Hash.Combine(ReturnType, Hash.Combine(((int)CallingConvention).GetHashCode(), ((int)FunctionPointerTypeSymbol.GetRefKindForHashCode(RefKind)).GetHashCode()));
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (2)
60=> FunctionPointerTypeSymbol.RefKindEquals(compareKind, RefKind, other.RefKind) 71=> Hash.Combine(TypeWithAnnotations.GetHashCode(), ((int)FunctionPointerTypeSymbol.GetRefKindForHashCode(RefKind)).GetHashCode());
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (7)
19public static FunctionPointerTypeSymbol CreateFromSource(FunctionPointerTypeSyntax syntax, Binder typeBinder, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved, bool suppressUseSiteDiagnostics) 32public static FunctionPointerTypeSymbol CreateFromPartsForTests( 46public static FunctionPointerTypeSymbol CreateFromParts( 56public static FunctionPointerTypeSymbol CreateFromMetadata(ModuleSymbol containingModule, Cci.CallingConvention callingConvention, ImmutableArray<ParamInfo<TypeSymbol>> retAndParamTypes) 60public FunctionPointerTypeSymbol SubstituteTypeSymbol( 107if (!(t2 is FunctionPointerTypeSymbol other)) 164var mergedSignature = Signature.MergeEquivalentTypes(((FunctionPointerTypeSymbol)other).Signature, variance);
Symbols\Metadata\PE\DynamicTypeDecoder.cs (3)
170return TransformFunctionPointerType((FunctionPointerTypeSymbol)type); 347private FunctionPointerTypeSymbol? TransformFunctionPointerType(FunctionPointerTypeSymbol type)
Symbols\Metadata\PE\NativeIntegerTypeDecoder.cs (3)
91return TransformFunctionPointerType((FunctionPointerTypeSymbol)type); 174private FunctionPointerTypeSymbol? TransformFunctionPointerType(FunctionPointerTypeSymbol type)
Symbols\Metadata\PE\SymbolFactory.cs (1)
51return FunctionPointerTypeSymbol.CreateFromMetadata(moduleSymbol, callingConvention, retAndParamTypes);
Symbols\Metadata\PE\TupleTypeDecoder.cs (3)
168return DecodeFunctionPointerType((FunctionPointerTypeSymbol)type); 209private FunctionPointerTypeSymbol DecodeFunctionPointerType(FunctionPointerTypeSymbol type)
Symbols\MethodSymbol.cs (1)
1031|| !FunctionPointerTypeSymbol.IsCallingConventionModifier(callConvType))
Symbols\PublicModel\FunctionPointerTypeSymbol.cs (2)
12private readonly Symbols.FunctionPointerTypeSymbol _underlying; 14public FunctionPointerTypeSymbol(Symbols.FunctionPointerTypeSymbol underlying, CodeAnalysis.NullableAnnotation nullableAnnotation)
Symbols\Retargeting\RetargetingSymbolTranslator.cs (3)
759public FunctionPointerTypeSymbol Retarget(FunctionPointerTypeSymbol type) 1344public override Symbol VisitFunctionPointerType(FunctionPointerTypeSymbol symbol, RetargetOptions argument)
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (4)
177else if (type is FunctionPointerTypeSymbol functionPointer) 294static void appendFunctionPointerType(FunctionPointerTypeSymbol functionPointer, StringBuilder builder) 483else if (type is FunctionPointerTypeSymbol functionPointer) 702static void appendFunctionPointerType(FunctionPointerTypeSymbol functionPointer, StringBuilder builder)
Symbols\SymbolExtensions.cs (3)
665internal static IFunctionPointerTypeSymbol? GetPublicSymbol(this FunctionPointerTypeSymbol? symbol) 808internal static FunctionPointerTypeSymbol? GetSymbol(this IFunctionPointerTypeSymbol? symbol) 810return symbol.GetSymbol<FunctionPointerTypeSymbol>();
Symbols\SymbolVisitor.cs (1)
100public virtual void VisitFunctionPointerType(FunctionPointerTypeSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
100public virtual TResult VisitFunctionPointerType(FunctionPointerTypeSymbol symbol)
Symbols\SymbolVisitor`2.cs (2)
124/// Called when visiting a <see cref="FunctionPointerTypeSymbol"/>; Override this with specific 130public virtual TResult VisitFunctionPointerType(FunctionPointerTypeSymbol symbol, TArgument argument)
Symbols\TypeSymbolExtensions.cs (8)
491return (TypeSymbol?)GetDelegateType(type) ?? type as FunctionPointerTypeSymbol; 626Debug.Assert(type is FunctionPointerTypeSymbol || type.IsDelegateType()); 627if (type is FunctionPointerTypeSymbol { Signature: { Parameters: var functionPointerParameters } }) 978var result = visitFunctionPointerType((FunctionPointerTypeSymbol)current, typeWithAnnotationsPredicate, typePredicate, arg, useDefaultType, canDigThroughNullable, visitCustomModifiers, out next); 999static TypeSymbol? visitFunctionPointerType(FunctionPointerTypeSymbol type, Func<TypeWithAnnotations, T, bool, bool>? typeWithAnnotationsPredicate, Func<TypeSymbol, T, bool, bool>? typePredicate, T arg, bool useDefaultType, bool canDigThroughNullable, bool visitCustomModifiers, out TypeWithAnnotations next) 2027var functionPointerType = (FunctionPointerTypeSymbol)type; 2126private static bool NormalizeTaskTypesInFunctionPointer(CSharpCompilation compilation, ref FunctionPointerTypeSymbol funcPtrType)
Utilities\TypeSymbolExtensions.cs (3)
43return ((FunctionPointerTypeSymbol)type).Signature.CustomModifierCount(); 112var funcPtr = (FunctionPointerTypeSymbol)type;