https://docs.oracle.com/javase/specs/jls/se14/html/jls-12.html#jls-12.1.4