Because of Java's "Definite Assignment" rules, it would make me upset if this weren't an error. Fortunately,

int b = b;

gives,

WeirdAssign.java:3: variable b might not have been initialized.Actually, one of the most interesting things about the first 'weird assignment' is that Eclipse gives me a warning that it, "has no effect." That's the reason I noticed this whole thing in the first place. Eclipse caught a coding mistake that I made. javac gives no such warning though.