internal SourceComplexParameterSymbol( Symbol owner, int ordinal, TypeSymbol parameterType, RefKind refKind, ImmutableArray <CustomModifier> customModifiers, bool hasByRefBeforeCustomModifiers, string name, ImmutableArray <Location> locations, SyntaxReference syntaxRef, ConstantValue defaultSyntaxValue, bool isParams, bool isExtensionMethodThis) : base(owner, parameterType, ordinal, refKind, name, locations) { Debug.Assert((syntaxRef == null) || (syntaxRef.GetSyntax().IsKind(SyntaxKind.Parameter))); Debug.Assert(!customModifiers.IsDefault); _lazyHasOptionalAttribute = ThreeState.Unknown; _syntaxRef = syntaxRef; if (isParams) { _parameterSyntaxKind |= ParameterSyntaxKind.ParamsParameter; } if (isExtensionMethodThis) { _parameterSyntaxKind |= ParameterSyntaxKind.ExtensionThisParameter; } var parameterSyntax = this.CSharpSyntaxNode; if (parameterSyntax != null && parameterSyntax.Default != null) { _parameterSyntaxKind |= ParameterSyntaxKind.DefaultParameter; } _lazyDefaultSyntaxValue = defaultSyntaxValue; _customModifiers = customModifiers; _hasByRefBeforeCustomModifiers = hasByRefBeforeCustomModifiers; }
internal SourceComplexParameterSymbol( Symbol owner, int ordinal, TypeSymbol parameterType, RefKind refKind, ImmutableArray<CustomModifier> customModifiers, bool hasByRefBeforeCustomModifiers, string name, ImmutableArray<Location> locations, SyntaxReference syntaxRef, ConstantValue defaultSyntaxValue, bool isParams, bool isExtensionMethodThis) : base(owner, parameterType, ordinal, refKind, name, locations) { Debug.Assert((syntaxRef == null) || (syntaxRef.GetSyntax().IsKind(SyntaxKind.Parameter))); Debug.Assert(!customModifiers.IsDefault); _lazyHasOptionalAttribute = ThreeState.Unknown; _syntaxRef = syntaxRef; if (isParams) { _parameterSyntaxKind |= ParameterSyntaxKind.ParamsParameter; } if (isExtensionMethodThis) { _parameterSyntaxKind |= ParameterSyntaxKind.ExtensionThisParameter; } var parameterSyntax = this.CSharpSyntaxNode; if (parameterSyntax != null && parameterSyntax.Default != null) { _parameterSyntaxKind |= ParameterSyntaxKind.DefaultParameter; } _lazyDefaultSyntaxValue = defaultSyntaxValue; _customModifiers = customModifiers; _hasByRefBeforeCustomModifiers = hasByRefBeforeCustomModifiers; }