Bug minor bugs and leave one possible bug untouched (check for comment in IteratorAnalysis line 2522)

This commit is contained in:
garbervetsky 2018-08-08 19:00:19 -07:00
Родитель 0462b823fd
Коммит 70cfe6c0d1
2 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -117,8 +117,7 @@ namespace ScopeProgramAnalysis
public InterProceduralReturnInfo DoInterProcWithCallee(InterProceduralCallInfo callInfo)
{
if (callInfo.Callee.Body.Operations.Any())
if ((!callInfo.Callee.IsExternal) && callInfo.Callee.Body.Operations.Any())
{
if (previousResult.ContainsKey(callInfo))
{

Просмотреть файл

@ -1451,6 +1451,7 @@ namespace Backend.Analyses
}
}
if(callStates.Any())
this.State = callStates.Aggregate((s1, s2) => s1.Join(s2));
}
}
@ -2142,7 +2143,7 @@ namespace Backend.Analyses
|| specialMethods.Any(sm => sm.Item1 == methodInvoked.ContainingType.GetFullName()
&& sm.Item2 == methodInvoked.Name.Value));
if (methodInvoked.ResolvedMethod != null && (MemberHelper.IsGetter(methodInvoked.ResolvedMethod) ||
if (methodInvoked.ResolvedMethod != null && method.ResolvedMethod!=Dummy.Method && (MemberHelper.IsGetter(methodInvoked.ResolvedMethod) ||
MemberHelper.IsSetter(methodInvoked.ResolvedMethod) && hasTraceables))
{
return true;
@ -2518,7 +2519,7 @@ namespace Backend.Analyses
{
this.processToAnalyze = processToAnalyze;
this.method = method;
this.iteratorClass = method.ContainingType as INamedTypeDefinition;
this.iteratorClass = processToAnalyze.ProcessorClass as INamedTypeDefinition; // method.ContainingType as INamedTypeDefinition;
// this.specialFields = specialFields;
this.ptgs = pta.Result;
this.equalities = equalitiesMap;