public void InterestingCase2() { var member1Key = new NameKey("x"); var memeber1TypeBox = new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(); var member1 = new WeakMemberDefinition(Access.ReadWrite, member1Key, memeber1TypeBox); var type1 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member1 })); memeber1TypeBox.Fill(OrType.Make <IFrontendType <IVerifiableType>, IError>(type1)); var member2Key = new NameKey("x"); var memeber2TypeBox = new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(); var member2 = new WeakMemberDefinition(Access.ReadWrite, member2Key, memeber2TypeBox); var member3Key = new NameKey("y"); var member3 = new WeakMemberDefinition(Access.ReadWrite, member3Key, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OrType.Make <IFrontendType <IVerifiableType>, IError>(new NumberType()))); var type2 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member2, member3 })); memeber2TypeBox.Fill(OrType.Make <IFrontendType <IVerifiableType>, IError>(type2)); Assert.False(type1.TheyAreUs(type2, new List <(IFrontendType <IVerifiableType>, IFrontendType <IVerifiableType>)>()).Is1OrThrow()); Assert.False(type2.TheyAreUs(type1, new List <(IFrontendType <IVerifiableType>, IFrontendType <IVerifiableType>)>()).Is1OrThrow()); }
private IFrontendType <IVerifiableType> B1() { var member1Key = new NameKey("bm1"); var member1 = new WeakMemberDefinition(Access.ReadWrite, member1Key, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OrType.Make <IFrontendType <IVerifiableType>, IError>(new NumberType()))); var type1 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member1 })); return(type1); }
public WeakMemberDefinition MemberDefinition(IMemberDefinition member) { if (backing.TryGetValue(member, out var res)) { return(res); } else { var interpetedMemberDefinition = new WeakMemberDefinition( member.Access, member.Key, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OrType.Make <IFrontendType <IVerifiableType>, IError>(TypeMap.MapType(member.Type)))); backing.Add(member, interpetedMemberDefinition); return(interpetedMemberDefinition); } }
public WeakMemberDefinition MemberDefinition(IMemberDefinition member) { if (backing.TryGetValue(member, out var res)) { return(res); } else { var interpetedMemberDefinition = new WeakMemberDefinition( member.ReadOnly, member.Key, Possibly.Is( new WeakTypeReference( Possibly.Is( new Box <IIsPossibly <IConvertableFrontendType <IVerifiableType> > >( Possibly.Is( TypeMap.MapType(member.Type))))))); backing.Add(member, interpetedMemberDefinition); return(interpetedMemberDefinition); } }