private SourceConstructorSymbol(
            SourceMemberContainerTypeSymbol containingType,
            Location location,
            ParameterListSyntax syntax,
            DiagnosticBag diagnostics) :
            base(containingType, syntax.GetReference(), null, ImmutableArray.Create(location))
        {
            var declarationModifiers = (containingType.IsAbstract ? DeclarationModifiers.Protected : DeclarationModifiers.Public) | DeclarationModifiers.PrimaryCtor;

            this.flags = MakeFlags(MethodKind.Constructor, declarationModifiers, returnsVoid: true, isExtensionMethod: false);
            this.CheckModifiers(MethodKind.Constructor, location, diagnostics);
        }