package test.test1.test2;
import java.io.*;
import java.util.Vector;
public class Test {
	public int i;
	public void foo(int k) {
		if (k > 0) {
			i = 3;;;
		} else if (k == 0) {
			i = 2;
		}
		if (i == 2) return;
		if (k > 0) i = 3;
	}
	public void bar() {
	}
	public long l; // long field
	public String s = null;
}
