示例#1
0
        /// <summary>
        /// Scans a block node. Not working with DMethods.
        /// Automatically resolves node matches so base types etc. will be specified directly after the search operation.
        /// </summary>
        public static List <AbstractType> SearchChildrenAndResolve(ResolutionContext ctxt, DSymbol t, int nameHash, ISyntaxRegion idObject = null)
        {
            var scan = new SingleNodeNameScan(ctxt, nameHash, idObject);

            if (t is TemplateIntermediateType)
            {
                scan.DeepScanClass(t as UserDefinedType, MemberFilter.All);
            }
            else if (t.Definition is IBlockNode)
            {
                scan.ScanBlock(t.Definition as IBlockNode, CodeLocation.Empty, MemberFilter.All);
            }

            return(scan.matches_types);
        }
示例#2
0
        /// <summary>
        /// Scans a block node. Not working with DMethods.
        /// Automatically resolves node matches so base types etc. will be specified directly after the search operation.
        /// </summary>
        public static List<AbstractType> SearchChildrenAndResolve(ResolutionContext ctxt, DSymbol t, int nameHash, ISyntaxRegion idObject = null)
        {
            var scan = new SingleNodeNameScan(ctxt, nameHash, idObject);

            if (t is TemplateIntermediateType)
                scan.DeepScanClass(t as UserDefinedType, MemberFilter.All);
            else if (t.Definition is IBlockNode)
                scan.ScanBlock(t.Definition as IBlockNode, CodeLocation.Empty, MemberFilter.All);

            return scan.matches_types;
        }
示例#3
0
        /// <summary>
        /// Scans a block node. Not working with DMethods.
        /// Automatically resolves node matches so base types etc. will be specified directly after the search operation.
        /// </summary>
        public static List<AbstractType> SearchChildrenAndResolve(ResolutionContext ctxt, IBlockNode block, int nameHash, object idObject = null)
        {
            var scan = new SingleNodeNameScan(ctxt, nameHash, idObject);

            scan.ScanBlock(block, CodeLocation.Empty, MemberFilter.All);

            return scan.matches_types;
        }