Example #1
0
        public ResFacetDeclBuilder(
            ILazyFactory lazyFactory,
            ResPipelineDeclBuilder parent,
            IResPipelineRef originalPipeline)
            : base(lazyFactory)
        {
            AddDependency(parent);
            DoneBuilding(NewBuilderPhase.Dependencies);

            _originalPipeline = originalPipeline;

            var resFacetDecl = new ResFacetDecl(
                Lazy.Value(originalPipeline),
                NewLazy(() => (from b in _directBaseFacets select b.Value).Eager()),
                NewLazy(() => (from mngb in _memberNameGroups.Values select mngb.Value).Eager()));

            SetValue(resFacetDecl);
        }
Example #2
0
        internal ResFacetDeclBuilder FindOrCreateFacetForBase(
            IResPipelineRef basePipelineRef)
        {
            var result = FindFacetForBase(
                basePipelineRef); // \todo: Substitution?

            if (result != null)
            {
                return(result);
            }

            var newFacetBuilder = new ResFacetDeclBuilder(
                this.LazyFactory,
                this,
                basePipelineRef);

            _facets.Add(newFacetBuilder);
            return(newFacetBuilder);
        }
Example #3
0
 private bool IsSamePipelineImpl(
     IResPipelineRef left,
     IResPipelineRef right)
 {
     return(left.Decl == right.Decl);
 }
Example #4
0
 private MidType EmitTypeExpImpl(IResPipelineRef resPipeline, MidEmitEnv env)
 {
     return((MidType)EmitMemberTerm(resPipeline.MemberTerm, env));
 }