protected BindingContext( CSemanticChecker pSemanticChecker, ExprFactory exprFactory, OutputContext outputContext, NameGenerator nameGenerator, bool bflushLocalVariableTypesForEachStatement, bool bAllowUnsafeBlocks, bool bIsOptimizingSwitchAndArrayInit, bool bShowReachability, bool bWrapNonExceptionThrows, bool bInRefactoring, KAID aidLookupContext ) { m_ExprFactory = exprFactory; m_outputContext = outputContext; m_pNameGenerator = nameGenerator; m_pInputFile = null; m_pParentDecl = null; m_pContainingAgg = null; m_pCurrentSwitchType = null; m_pOriginalConstantField = null; m_pCurrentFieldSymbol = null; m_pImplicitlyTypedLocal = null; m_pOuterScope = null; m_pFinallyScope = null; m_pTryScope = null; m_pCatchScope = null; m_pCurrentScope = null; m_pSwitchScope = null; m_pCurrentBlock = null; m_UnsafeState = UNSAFESTATES.UNSAFESTATES_Unknown; m_FinallyNestingCount = 0; m_bInsideTryOfCatch = false; m_bInFieldInitializer = false; m_bInBaseConstructorCall = false; m_bAllowUnsafeBlocks = bAllowUnsafeBlocks; m_bIsOptimizingSwitchAndArrayInit = bIsOptimizingSwitchAndArrayInit; m_bShowReachability = bShowReachability; m_bWrapNonExceptionThrows = bWrapNonExceptionThrows; m_bInRefactoring = bInRefactoring; m_bInAttribute = false; m_bRespectSemanticsAndReportErrors = true; m_bflushLocalVariableTypesForEachStatement = bflushLocalVariableTypesForEachStatement; m_ppamis = null; m_pamiCurrent = null; m_pInitType = null; m_returnErrorSink = null; Debug.Assert(pSemanticChecker != null); this.SemanticChecker = pSemanticChecker; this.SymbolLoader = SemanticChecker.GetSymbolLoader(); m_outputContext.m_pThisPointer = null; m_outputContext.m_pCurrentMethodSymbol = null; m_aidExternAliasLookupContext = aidLookupContext; CheckedNormal = false; CheckedConstant = false; }
protected BindingContext(BindingContext parent) { m_ExprFactory = parent.m_ExprFactory; m_outputContext = parent.m_outputContext; m_pNameGenerator = parent.m_pNameGenerator; m_pInputFile = parent.m_pInputFile; m_pParentDecl = parent.m_pParentDecl; m_pContainingAgg = parent.m_pContainingAgg; m_pCurrentSwitchType = parent.m_pCurrentSwitchType; m_pOriginalConstantField = parent.m_pOriginalConstantField; m_pCurrentFieldSymbol = parent.m_pCurrentFieldSymbol; m_pImplicitlyTypedLocal = parent.m_pImplicitlyTypedLocal; m_pOuterScope = parent.m_pOuterScope; m_pFinallyScope = parent.m_pFinallyScope; m_pTryScope = parent.m_pTryScope; m_pCatchScope = parent.m_pCatchScope; m_pCurrentScope = parent.m_pCurrentScope; m_pSwitchScope = parent.m_pSwitchScope; m_pCurrentBlock = parent.m_pCurrentBlock; m_ppamis = parent.m_ppamis; m_pamiCurrent = parent.m_pamiCurrent; m_UnsafeState = parent.m_UnsafeState; m_FinallyNestingCount = parent.m_FinallyNestingCount; m_bInsideTryOfCatch = parent.m_bInsideTryOfCatch; m_bInFieldInitializer = parent.m_bInFieldInitializer; m_bInBaseConstructorCall = parent.m_bInBaseConstructorCall; CheckedNormal = parent.CheckedNormal; CheckedConstant = parent.CheckedConstant; m_aidExternAliasLookupContext = parent.m_aidExternAliasLookupContext; m_bAllowUnsafeBlocks = parent.m_bAllowUnsafeBlocks; m_bIsOptimizingSwitchAndArrayInit = parent.m_bIsOptimizingSwitchAndArrayInit; m_bShowReachability = parent.m_bShowReachability; m_bWrapNonExceptionThrows = parent.m_bWrapNonExceptionThrows; m_bflushLocalVariableTypesForEachStatement = parent.m_bflushLocalVariableTypesForEachStatement; m_bInRefactoring = parent.m_bInRefactoring; m_bInAttribute = parent.m_bInAttribute; m_bRespectSemanticsAndReportErrors = parent.m_bRespectSemanticsAndReportErrors; m_pInitType = parent.m_pInitType; m_returnErrorSink = parent.m_returnErrorSink; Debug.Assert(parent.SemanticChecker != null); this.SemanticChecker = parent.SemanticChecker; this.SymbolLoader = SemanticChecker.GetSymbolLoader(); }