Ejemplo n.º 1
0
 internal TypeRefContext(NamingContext naming, SourceUnit sourceUnit, SourceNamedTypeSymbol containingType)
 {
     _namingCtx      = naming;
     _sourceUnit     = sourceUnit;
     _typeRefs       = new List <ITypeRef>();
     _containingType = containingType;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates type context for a method within given type, determines naming, type context.
        /// </summary>
        public static TypeRefContext /*!*/ CreateTypeRefContext(SourceNamedTypeSymbol /*!*/ containingType)
        {
            Contract.ThrowIfNull(containingType);

            var typeDecl = containingType.Syntax;

            return(new TypeRefContext(NameUtils.GetNamingContext(typeDecl), typeDecl.SourceUnit, containingType));
        }
Ejemplo n.º 3
0
        private static ImmutableArray <BoundInitializer> BindInitializersWithoutDiagnostics(
            SourceNamedTypeSymbol typeSymbol,
            ImmutableArray <ImmutableArray <FieldOrPropertyInitializer> > initializers
            )
        {
            DiagnosticBag diagnostics = DiagnosticBag.GetInstance();
            ImportChain   unused;
            var           boundInitializers = ArrayBuilder <BoundInitializer> .GetInstance();

            Binder.BindRegularCSharpFieldInitializers(
                typeSymbol.DeclaringCompilation,
                initializers,
                boundInitializers,
                new BindingDiagnosticBag(diagnostics),
                firstDebugImports: out unused
                );
            diagnostics.Verify();
            diagnostics.Free();
            return(boundInitializers.ToImmutableAndFree());
        }
        private static ImmutableArray <BoundInitializer> BindInitializersWithoutDiagnostics(SourceNamedTypeSymbol typeSymbol, ImmutableArray <ImmutableArray <FieldInitializer> > initializers)
        {
            DiagnosticBag diagnostics = DiagnosticBag.GetInstance();

            try
            {
                ConsList <Imports> unused;
                var boundInitializers = Compiler.BindFieldInitializers(
                    containingType: typeSymbol,
                    scriptCtor: null,
                    initializers: initializers,
                    diagnostics: diagnostics,
                    generateDebugInfo: false,
                    firstDebugImports: out unused);

                var filteredDiag = diagnostics.AsEnumerable();
                foreach (var diagnostic in filteredDiag)
                {
                    Console.WriteLine(diagnostic);
                }

                Assert.True(filteredDiag.IsEmpty());

                return(boundInitializers);
            }
            finally
            {
                diagnostics.Free();
            }
        }
Ejemplo n.º 5
0
        private static ImmutableArray <BoundInitializer> BindInitializersWithoutDiagnostics(SourceNamedTypeSymbol typeSymbol, ImmutableArray <ImmutableArray <FieldOrPropertyInitializer> > initializers)
        {
            DiagnosticBag diagnostics = DiagnosticBag.GetInstance();

            try
            {
                ImportChain unused;
                var         boundInitializers = Binder.BindFieldInitializers(
                    containingType: typeSymbol,
                    scriptCtor: null,
                    initializers: initializers,
                    diagnostics: diagnostics,
                    firstImportChain: out unused);

                diagnostics.Verify();

                return(boundInitializers);
            }
            finally
            {
                diagnostics.Free();
            }
        }