Цель «выражения let» (LetExpr) в компиляторе Java?

Кажется, компилятор Java поддерживает выражения let в com .sun.tools.javac.tree. * (ищите LetExpr ).

Один комментарий в JCTree даже упоминает некоторый синтаксис

(let int x = 3; in x+2)

, который, конечно, не принимается грамматикой языка и отклоняется на более ранней стадии компиляции.

Меня интересует происхождение этой конструкции, которую я никогда раньше не видел.

Используется ли он внутри javac или синтезируется другими инструментами? Может быть, это просто артефакт с самых первых дней Java из языковой функции, которая так и не увидела свет?

Есть ли что-нибудь полезное, что можно сделать с ее помощью сегодня?

В общем, почему она существует?

71
задан Peter Mortensen 27 December 2011 в 19:39
поделиться