Beispiel #1
0
        public virtual bool Lookup(DName name, out NameLookupInfo nameInfo, NameLookupPreferences preferences = NameLookupPreferences.None)
        {
            var enumValue = _enums.FirstOrDefault(symbol => symbol.InvariantName == name);

            if (enumValue != null)
            {
                nameInfo = new NameLookupInfo(BindKind.Enum, enumValue.EnumType, DPath.Root, 0, enumValue);
                return(true);
            }

            nameInfo = default;
            return(false);
        }
Beispiel #2
0
        public override bool Lookup(DName name, out NameLookupInfo nameInfo, NameLookupPreferences preferences = NameLookupPreferences.None)
        {
            // Kinds of globals:
            // - global formula
            // - parameters

            string str = name.Value;

            var parameter = _parameters.MaybeGetFieldType(str);

            if (parameter != null)
            {
                var data = new ParameterData {
                    ParameterName = str
                };
                var type = parameter._type;

                nameInfo = new NameLookupInfo(
                    BindKind.PowerFxResolvedObject,
                    type,
                    DPath.Root,
                    0,
                    data
                    );
                return(true);
            }

            if (_parent.Formulas.TryGetValue(str, out var fi))
            {
                var data = fi;
                var type = fi._type._type;

                nameInfo = new NameLookupInfo(
                    BindKind.PowerFxResolvedObject,
                    type,
                    DPath.Root,
                    0,
                    data
                    );
                return(true);
            }

            return(base.Lookup(name, out nameInfo, preferences));
        }