// Count how many method calls can be devirtualized using the ZS condition (for testing) aspect ZSdevirtCount { syn lazy int Program.ZSdevirtCountInSourceFiles() { int count = 0; for(Iterator iter = compilationUnitIterator(); iter.hasNext(); ) { CompilationUnit cu = (CompilationUnit)iter.next(); if(cu.fromSource()) count += cu.ZSdevirtCount(); } return count; } syn int ASTNode.ZSdevirtCount() { int count = 0; for (int i=0;i