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); }
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); }
private bool IsSamePipelineImpl( IResPipelineRef left, IResPipelineRef right) { return(left.Decl == right.Decl); }
private MidType EmitTypeExpImpl(IResPipelineRef resPipeline, MidEmitEnv env) { return((MidType)EmitMemberTerm(resPipeline.MemberTerm, env)); }