private void CreateCountImpl(IIntermediateClassType resultClass, IInterfacePropertyMember countProp)
        {
            var countProperty = resultClass.Properties.Add(new TypedName("Count", RuntimeCoreType.Int32, this.assembly.IdentityManager), true, false);

            countProperty.SummaryText = string.Format("Returns the @s:Int32; value which denotes the number of elements within the @s:{0};", resultClass.Name);
            countProperty.GetMethod.Return(countProp.GetReference(this.InternalStreamImpl.GetReference()));
            countProperty.AccessLevel = AccessLevelModifiers.Public;
            this.CountImpl            = countProperty;
        }
 public static IYieldReturnStatement YieldReturn(this IBlockStatementParent blockParent, IInterfacePropertyMember returnValue)
 {
     return(blockParent.YieldReturn((IExpression)returnValue.GetReference()));
 }
 public static IReturnStatement Return(this IBlockStatementParent blockParent, IInterfacePropertyMember returnValue)
 {
     return(blockParent.Return(returnValue.GetReference()));
 }
        private static Tuple <IType, VisitorImplementationTypeRelevance> GetTypeRelevance(IInterfacePropertyMember property, IInterfaceType[] relevantInterfaces, IType[] actionableTypes)
        {
            var propType = property.PropertyType;
            VisitorImplementationTypeRelevance result;

            if ((result = IsTypeRelevant(relevantInterfaces, propType, actionableTypes)) != VisitorImplementationTypeRelevance.NotRelevant)
            {
                return(Tuple.Create(propType, result));
            }
            var enAccess = IsTypeRelevantForEnumerableAccess(relevantInterfaces, propType, actionableTypes);

            return(enAccess);
        }
 private static Tuple <IType, VisitorImplementationTypeRelevance> IsPropertyRelevant(IInterfacePropertyMember property, IInterfaceType[] relevantInterfaces, IType ignoreAttr, IType[] actionableTypes)
 {
     if (property.Metadata.Contains(ignoreAttr))
     {
         return(new Tuple <IType, VisitorImplementationTypeRelevance>(null, VisitorImplementationTypeRelevance.NotRelevant));
     }
     return(GetTypeRelevance(property, relevantInterfaces, actionableTypes));
 }