forked from IronLanguages/ironpython3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClosureInfo.cs
More file actions
37 lines (28 loc) · 1.09 KB
/
ClosureInfo.cs
File metadata and controls
37 lines (28 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
using System;
using Microsoft.Scripting;
using IronPython.Compiler.Ast;
using MSAst = System.Linq.Expressions;
using Microsoft.Scripting.Utils;
namespace IronPython.Compiler {
/// <summary>
/// Tracking for variables lifted into closure objects. Used to store information in a function
/// about the outer variables it accesses.
/// </summary>
internal class ReferenceClosureInfo {
public readonly PythonVariable/*!*/ Variable;
public bool IsClosedOver;
public ReferenceClosureInfo(PythonVariable/*!*/ variable, int index, MSAst.Expression/*!*/ tupleExpr, bool accessedInThisScope) {
Assert.NotNull(variable);
Variable = variable;
IsClosedOver = accessedInThisScope;
}
public PythonVariable/*!*/ PythonVariable {
get {
return Variable;
}
}
}
}