예제 #1
0
 public SignatureOnlyMethodSymbol(
     string name,
     TypeSymbol containingType,
     MethodKind methodKind,
     Cci.CallingConvention callingConvention,
     ImmutableArray <TypeParameterSymbol> typeParameters,
     ImmutableArray <ParameterSymbol> parameters,
     RefKind refKind,
     bool isInitOnly,
     TypeWithAnnotations returnType,
     ImmutableArray <CustomModifier> refCustomModifiers,
     ImmutableArray <MethodSymbol> explicitInterfaceImplementations)
 {
     Debug.Assert(returnType.IsDefault || isInitOnly == CustomModifierUtils.HasIsExternalInitModifier(returnType.CustomModifiers));
     _callingConvention  = callingConvention;
     _typeParameters     = typeParameters;
     _refKind            = refKind;
     _isInitOnly         = isInitOnly;
     _returnType         = returnType;
     _refCustomModifiers = refCustomModifiers;
     _parameters         = parameters;
     _explicitInterfaceImplementations = explicitInterfaceImplementations.NullToEmpty();
     _containingType = containingType;
     _methodKind     = methodKind;
     _name           = name;
 }
예제 #2
0
 protected TypeSymbol MakeFunctionPointerTypeSymbol(
     Cci.CallingConvention callingConvention,
     ImmutableArray <ParamInfo <TypeSymbol> > retAndParamInfos
     )
 {
     return(_factory.MakeFunctionPointerTypeSymbol(callingConvention, retAndParamInfos));
 }
예제 #3
0
 public SignatureOnlyMethodSymbol(
     string name,
     TypeSymbol containingType,
     MethodKind methodKind,
     Cci.CallingConvention callingConvention,
     ImmutableArray <TypeParameterSymbol> typeParameters,
     ImmutableArray <ParameterSymbol> parameters,
     RefKind refKind,
     TypeSymbol returnType,
     ImmutableArray <CustomModifier> returnTypeCustomModifiers,
     ImmutableArray <CustomModifier> refCustomModifiers,
     ImmutableArray <MethodSymbol> explicitInterfaceImplementations)
 {
     _callingConvention                = callingConvention;
     _typeParameters                   = typeParameters;
     _refKind                          = refKind;
     _returnType                       = returnType;
     _returnTypeCustomModifiers        = returnTypeCustomModifiers;
     _refCustomModifiers               = refCustomModifiers;
     _parameters                       = parameters;
     _explicitInterfaceImplementations = explicitInterfaceImplementations.NullToEmpty();
     _containingType                   = containingType;
     _methodKind                       = methodKind;
     _name = name;
 }
예제 #4
0
 public static FunctionPointerTypeSymbol CreateFromMetadata(
     Cci.CallingConvention callingConvention,
     ImmutableArray <ParamInfo <TypeSymbol> > retAndParamTypes
     ) =>
 new FunctionPointerTypeSymbol(
     FunctionPointerMethodSymbol.CreateFromMetadata(callingConvention, retAndParamTypes)
     );
 public SignatureOnlyMethodSymbol(
     string name,
     TypeSymbol containingType,
     MethodKind methodKind,
     Cci.CallingConvention callingConvention,
     ImmutableArray<TypeParameterSymbol> typeParameters,
     ImmutableArray<ParameterSymbol> parameters,
     RefKind refKind,
     TypeSymbol returnType,
     ImmutableArray<CustomModifier> returnTypeCustomModifiers,
     ushort countOfCustomModifiersPrecedingByRef,
     ImmutableArray<MethodSymbol> explicitInterfaceImplementations)
 {
     _callingConvention = callingConvention;
     _typeParameters = typeParameters;
     _refKind = refKind;
     _returnType = returnType;
     _returnTypeCustomModifiers = returnTypeCustomModifiers;
     _countOfCustomModifiersPrecedingByRef = countOfCustomModifiersPrecedingByRef;
     _parameters = parameters;
     _explicitInterfaceImplementations = explicitInterfaceImplementations.NullToEmpty();
     _containingType = containingType;
     _methodKind = methodKind;
     _name = name;
 }
예제 #6
0
 internal override TypeSymbol MakeFunctionPointerTypeSymbol(
     Cci.CallingConvention callingConvention,
     ImmutableArray <ParamInfo <TypeSymbol> > retAndParamTypes
     )
 {
     return(FunctionPointerTypeSymbol.CreateFromMetadata(
                callingConvention,
                retAndParamTypes
                ));
 }
예제 #7
0
 public CallingConventionInfo(
     Cci.CallingConvention callKind,
     ImmutableHashSet <CustomModifier> unmanagedCallingConventionTypes
     )
 {
     Debug.Assert(
         unmanagedCallingConventionTypes.IsEmpty ||
         callKind == Cci.CallingConvention.Unmanaged
         );
     CallKind = callKind;
     UnmanagedCallingConventionTypes = unmanagedCallingConventionTypes;
 }
예제 #8
0
 public SignatureOnlyMethodSymbol(
     string name,
     TypeSymbol containingType,
     MethodKind methodKind,
     Cci.CallingConvention callingConvention,
     ImmutableArray <TypeParameterSymbol> typeParameters,
     ImmutableArray <ParameterSymbol> parameters,
     TypeSymbol returnType,
     ImmutableArray <CustomModifier> returnTypeCustomModifiers,
     ImmutableArray <MethodSymbol> explicitInterfaceImplementations)
 {
     this.callingConvention                = callingConvention;
     this.typeParameters                   = typeParameters;
     this.returnType                       = returnType;
     this.returnTypeCustomModifiers        = returnTypeCustomModifiers;
     this.parameters                       = parameters;
     this.explicitInterfaceImplementations = explicitInterfaceImplementations.NullToEmpty();
     this.containingType                   = containingType;
     this.methodKind                       = methodKind;
     this.name = name;
 }
 public SignatureOnlyMethodSymbol(
     string name,
     TypeSymbol containingType,
     MethodKind methodKind,
     Cci.CallingConvention callingConvention,
     ImmutableArray<TypeParameterSymbol> typeParameters,
     ImmutableArray<ParameterSymbol> parameters,
     TypeSymbol returnType,
     ImmutableArray<CustomModifier> returnTypeCustomModifiers,
     ImmutableArray<MethodSymbol> explicitInterfaceImplementations)
 {
     this.callingConvention = callingConvention;
     this.typeParameters = typeParameters;
     this.returnType = returnType;
     this.returnTypeCustomModifiers = returnTypeCustomModifiers;
     this.parameters = parameters;
     this.explicitInterfaceImplementations = explicitInterfaceImplementations.NullToEmpty();
     this.containingType = containingType;
     this.methodKind = methodKind;
     this.name = name;
 }
예제 #10
0
 internal abstract TypeSymbol MakeFunctionPointerTypeSymbol(Cci.CallingConvention callingConvention, ImmutableArray <ParamInfo <TypeSymbol> > returnAndParamTypes);