private void LoadMatchingExpressionsForTypes() { var nonPluralTypes = WorkspaceManager.KnownTypesManager.WholeTypeCache .Where(c => { var(_, expression) = c; return(!expression.IsPlural); }).ToList(); foreach (var(type, expressions) in nonPluralTypes .Select(cc => (Type: cc.Value.ClassName, Expressions: KnownExpressionsFromAddons .Where(c => !(c is SyntaxSkriptEventValueExpression)) .Where(c => !BannedClassNames.Contains(c.ClassName)) .Where(c => c.ReturnType == cc.Value.ClassName || CheckClassExtendsAnother(c.ReturnType, cc.Value.ClassName)).ToList()))) { ExpressionsForType.TryAdd(type, expressions); } ExpressionsForType.TryAdd(KnownTypesManager.JavaLangObjectClass, KnownExpressionsFromAddons.ToList()); LoadEventExpressionsForTypes(nonPluralTypes); }
public IReadOnlyList <SyntaxSkriptExpression> GetExpressionsThatCanFitType(string type) { return(ExpressionsForType.GetValue(type)); }