{
Normal = 0,
Probing = 1,
- IgnoreAccessibility = 2
+ IgnoreAccessibility = 2,
+ IgnoreStaticUsing = 1 << 10
}
//
public ExceptionStatement CurrentTryBlock { get; set; }
+ public TryCatch CurrentTryCatch { get; set; }
+
public LoopStatement EnclosingLoop { get; set; }
public LoopStatement EnclosingLoopOrSwitch { get; set; }
return da;
}
+ public Dictionary<Statement, List<DefiniteAssignmentBitSet>> CopyLabelStack ()
+ {
+ if (LabelStack == null)
+ return null;
+
+ var dest = new Dictionary<Statement, List<DefiniteAssignmentBitSet>> ();
+ foreach (var entry in LabelStack) {
+ dest.Add (entry.Key, new List<DefiniteAssignmentBitSet> (entry.Value));
+ }
+
+ return dest;
+ }
+
public bool IsDefinitelyAssigned (VariableInfo variable)
{
return variable.IsAssigned (DefiniteAssignment);
return variable.IsStructFieldAssigned (DefiniteAssignment, name);
}
+ public void SetLabelStack (Dictionary<Statement, List<DefiniteAssignmentBitSet>> labelStack)
+ {
+ LabelStack = labelStack;
+ }
+
public void SetVariableAssigned (VariableInfo variable, bool generatedAssignment = false)
{
variable.SetAssigned (DefiniteAssignment, generatedAssignment);
if (all_source_files == null) {
all_source_files = new Dictionary<string, SourceFile> ();
foreach (var source in SourceFiles)
- all_source_files[source.FullPathName] = source;
+ all_source_files[source.OriginalFullPathName] = source;
}
string path;
if (!Path.IsPathRooted (name)) {
var loc = comp_unit.SourceFile;
- string root = Path.GetDirectoryName (loc.FullPathName);
+ string root = Path.GetDirectoryName (loc.OriginalFullPathName);
path = Path.GetFullPath (Path.Combine (root, name));
var dir = Path.GetDirectoryName (loc.Name);
if (!string.IsNullOrEmpty (dir))