internal SerializedScopeStatement(string name, string[] parameterNames, int argCount, FunctionAttributes flags, int startIndex, int endIndex, string path, string[] freeVars, string[] names, string[] cellVars, string[] varNames) { _name = name; _filename = path; _flags = flags; SetLoc(null, startIndex, endIndex); _parameterNames = parameterNames; _argCount = argCount; _kwOnlyArgCount = parameterNames.Length - argCount; if (flags.HasFlag(FunctionAttributes.ArgumentList)) { _kwOnlyArgCount--; } if (flags.HasFlag(FunctionAttributes.KeywordDictionary)) { _kwOnlyArgCount--; } if (freeVars != null) { foreach (string freeVar in freeVars) { AddFreeVariable(new PythonVariable(freeVar, VariableKind.Local, this), false); } } if (names != null) { foreach (string globalName in names) { AddGlobalVariable(new PythonVariable(globalName, VariableKind.Global, this)); } } if (varNames != null) { foreach (string variable in varNames) { EnsureVariable(variable); } } if (cellVars != null) { foreach (string cellVar in cellVars) { AddCellVariable(new PythonVariable(cellVar, VariableKind.Local, this)); } } }