예제 #1
0
 /// <summary>
 /// Handles the base assignment case for assign to a variable, minus variable creation.
 /// </summary>
 protected static bool AssignVariableWorker(Node location, AnalysisUnit unit, IAnalysisSet values, VariableDef vars)
 {
     vars.AddAssignment(location, unit);
     vars.MakeUnionStrongerIfMoreThan(unit.ProjectState.Limits.AssignedTypes, values);
     return(vars.AddTypes(unit, values));
 }
예제 #2
0
 public void AddYield(Node node, AnalysisUnit unit, IAnalysisSet yieldValue, bool enqueue = true)
 {
     Yields.MakeUnionStrongerIfMoreThan(ProjectState.Limits.YieldTypes, yieldValue);
     Yields.AddTypes(unit, yieldValue, enqueue);
 }
예제 #3
0
 public void AddReturn(Node node, AnalysisUnit unit, IAnalysisSet returnValue, bool enqueue = true)
 {
     Returns.MakeUnionStrongerIfMoreThan(ProjectState.Limits.ReturnTypes, returnValue);
     Returns.AddTypes(unit, returnValue, enqueue);
 }
예제 #4
0
 /// <summary>
 /// Handles the base assignment case for assign to a variable, minus variable creation.
 /// </summary>
 protected static bool AssignVariableWorker(Node location, AnalysisUnit unit, IAnalysisSet values, VariableDef vars) {
     vars.AddAssignment(location, unit);
     vars.MakeUnionStrongerIfMoreThan(unit.ProjectState.Limits.AssignedTypes, values);
     return vars.AddTypes(unit, values);
 }