Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol.GetOuterAgg C# (CSharp) Method

GetOuterAgg() public method

public GetOuterAgg ( ) : AggregateSymbol
return AggregateSymbol
        public AggregateSymbol GetOuterAgg()
        {
            return parent != null && parent.IsAggregateSymbol() ? parent.AsAggregateSymbol() : null;
        }

Usage Example

Example #1
0
        public AggregateType GetAggregate(AggregateSymbol agg, TypeArray typeArgsAll)
        {
            Debug.Assert(typeArgsAll != null && typeArgsAll.Count == agg.GetTypeVarsAll().Count);

            if (typeArgsAll.Count == 0)
            {
                return(agg.getThisType());
            }

            AggregateSymbol aggOuter = agg.GetOuterAgg();

            if (aggOuter == null)
            {
                return(GetAggregate(agg, null, typeArgsAll));
            }

            int cvarOuter = aggOuter.GetTypeVarsAll().Count;

            Debug.Assert(cvarOuter <= typeArgsAll.Count);

            TypeArray     typeArgsOuter = _BSymmgr.AllocParams(cvarOuter, typeArgsAll, 0);
            TypeArray     typeArgsInner = _BSymmgr.AllocParams(agg.GetTypeVars().Count, typeArgsAll, cvarOuter);
            AggregateType atsOuter      = GetAggregate(aggOuter, typeArgsOuter);

            return(GetAggregate(agg, atsOuter, typeArgsInner));
        }
All Usage Examples Of Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol::GetOuterAgg