package com.siyeh.igtest.bugs.infinite_recursion; import com.intellij.psi.PsiClass; import java.util.List; import java.io.IOException; import java.io.File; public class InfiniteRecursion { public void foo() { new InfiniteRecursion().foo(); } public void bar() { foo(); } public int baz() { return baz(); } public int bazoom() { if(foobar()) { return bazoom(); } return 3; } public void bazoomvoid() { if(foobar()) { bazoomvoid(); } } public int barangus() { while(foobar()) { return barangus(); } return 3; } public int barangoo() { do { return barangoo(); } while(foobar()); } public int bazoomer() { if(foobar()) { return bazoomer(); } else { return bazoomer() + 3; } } public boolean foobar() { return false && foobar(); } public boolean foobarangus() { return foobarangus() && false; } public int bangem(PsiClass aClass) { final PsiClass superClass = aClass.getSuperClass(); if(superClass ==null) { return 0; } else { return bangem(aClass)+1; } } private boolean foo(final PsiClass superClass) { return superClass ==null; } public int getInheritanceDepth(PsiClass aClass) { final PsiClass superClass = aClass.getSuperClass(); if(superClass == null) { return 0; } else { return getInheritanceDepth(superClass) + 1; } } void rec(List pageConfig) { try { new File("c:/").getCanonicalFile(); } catch (IOException e) { } for (int j = 0; j < pageConfig.size(); j++) { List pc = (List) pageConfig.get(j); rec(pc); } } void foo1() { for (;true && true || false;) { foo1(); } } void foo2() { if (true || false) { foo2(); } } void bar1() { while (true || false) { bar1(); } } }