Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 4
0
 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);
     }
 }