static List<TypedDeclaration> collectUninitializedMembers(Tree.Body body) { List<TypedDeclaration> uninitialized = new ArrayList<TypedDeclaration>(); if (body != null) { List<Tree.Statement> statements = body.getStatements(); for (Tree.Statement st : statements) { if (st instanceof Tree.AttributeDeclaration) { Tree.AttributeDeclaration ad = (Tree.AttributeDeclaration) st; if (ad.getSpecifierOrInitializerExpression() == null) { Value v = ad.getDeclarationModel(); if (!v.isFormal()) { uninitialized.add(v); } } } else if (st instanceof Tree.MethodDeclaration) { Tree.MethodDeclaration md = (Tree.MethodDeclaration) st; if (md.getSpecifierExpression() == null) { Function m = md.getDeclarationModel(); if (!m.isFormal()) { uninitialized.add(m); } } } else if (st instanceof Tree.SpecifierStatement) { Tree.SpecifierStatement ss = (Tree.SpecifierStatement) st; Tree.Term term = ss.getBaseMemberExpression(); if (term instanceof Tree.BaseMemberExpression) { Tree.BaseMemberExpression bme = (Tree.BaseMemberExpression) term; uninitialized.remove(bme.getDeclaration()); } } } } return uninitialized; }