diff --git a/Upsilon/BaseTypes/TypeConversion.cs b/Upsilon/BaseTypes/TypeConversion.cs index 9944e5d..f5ac9ca 100644 --- a/Upsilon/BaseTypes/TypeConversion.cs +++ b/Upsilon/BaseTypes/TypeConversion.cs @@ -125,7 +125,7 @@ namespace Upsilon.BaseTypes if (t == typeof(ScriptType)) return Type.Unknown; if (typeof(IEnumerable).IsAssignableFrom(t)) - return Type.Table | Type.Function; + return Type.Table; return Type.UserData; } diff --git a/Upsilon/StandardLibraries/StaticScope.cs b/Upsilon/StandardLibraries/StaticScope.cs index 24d0f19..b3bc540 100644 --- a/Upsilon/StandardLibraries/StaticScope.cs +++ b/Upsilon/StandardLibraries/StaticScope.cs @@ -109,13 +109,16 @@ namespace Upsilon.StandardLibraries { var genericParameters = type.GetGenericArguments(); var parameters = new List(); - for (var i = 0; i < genericParameters.Length - 1; i++) + if (genericParameters.Length > 1) { - var t = DeriveValidTypes(genericParameters[i]); - parameters.Add(new InternalFunctionVariableSymbol.InternalFunctionParameter(t, false)); + for (var i = 0; i < genericParameters.Length - 1; i++) + { + var t = DeriveValidTypes(genericParameters[i]); + parameters.Add(new InternalFunctionVariableSymbol.InternalFunctionParameter(t, false)); + } } - var result = genericParameters[parameters.Count - 1].GetScriptType(); + var result = genericParameters[genericParameters.Length - 1].GetScriptType(); return new InternalFunctionVariableSymbol(name, true, result, parameters.ToArray()); }