コード例 #1
0
        public override BoundNode VisitNewT(BoundNewT node)
        {
            if (_inExpressionLambda)
            {
                return(node.Update(MakeObjectCreationInitializerForExpressionTree(node.InitializerExpressionOpt), node.Type));
            }

            var rewrittenNewT = MakeNewT(node.Syntax, (TypeParameterSymbol)node.Type);

            if (node.InitializerExpressionOpt == null || node.InitializerExpressionOpt.HasErrors)
            {
                return(rewrittenNewT);
            }

            return(MakeExpressionWithInitializer(node.Syntax, rewrittenNewT, node.InitializerExpressionOpt, rewrittenNewT.Type !));
        }
コード例 #2
0
        public override BoundNode VisitNewT(BoundNewT node)
        {
            base.VisitNewT(node);
            HashSet <DiagnosticInfo> useSiteDiagnostics = null;

            if (Conversions.IsBaseInterface(IDisposableType, node.Type, ref useSiteDiagnostics))
            {
                if (!this.State.possiblyUndisposedCreations.Add(node) && reported.Add(node.Syntax))
                {
                    Diagnostics.Add(ErrorCode.WRN_CA2000_DisposeObjectsBeforeLosingScope1, node.Syntax.Location, node.Type);
                }

                return(node);
            }

            return(null);
        }
コード例 #3
0
 private BoundExpression VisitNewT(BoundNewT node)
 {
     return VisitObjectCreationContinued(ExprFactory("New", _bound.Typeof(node.Type)), node.InitializerExpressionOpt);
 }
コード例 #4
0
 private BoundExpression VisitNewT(BoundNewT node)
 {
     return(VisitObjectCreationContinued(ExprFactory("New", _bound.Typeof(node.Type)), node.InitializerExpressionOpt));
 }
コード例 #5
0
        public override BoundNode VisitNewT(BoundNewT node)
        {
            if (_inExpressionLambda)
            {
                return node.Update(MakeObjectCreationInitializerForExpressionTree(node.InitializerExpressionOpt), node.Type);
            }

            var rewrittenNewT = MakeNewT(node.Syntax, (TypeParameterSymbol)node.Type);
            if (node.InitializerExpressionOpt == null || node.InitializerExpressionOpt.HasErrors)
            {
                return rewrittenNewT;
            }

            return MakeObjectCreationWithInitializer(node.Syntax, rewrittenNewT, node.InitializerExpressionOpt, rewrittenNewT.Type);
        }