Feedback for the command syntax and the behavior of the temporary variable

Robert Field robert.field at oracle.com
Mon Jun 29 15:35:32 UTC 2015


My perspective is that the temp variables are scratch convenience 
variables, if users want to change them then it is there choice. I can 
easily see why a user might want to, for example, the user writes a method 
referencing a temp variables then realizes they want the temp to have a 
different value. In general, I am resistant to slapping the user's hand for 
what they choose to do unless there is a compelling reason.

Why don't variable reference and assignment expressions generate a temp 
variables:

   x

   x = 1

Because they already have a variable referring to the value.  Adding a temp 
variables would be visual and conceptual noise.  Much the same reason that:

   int x = 1

does not generate a temp variables.

-Robert




On June 29, 2015 12:49:31 AM Paul Sandoz <paul.sandoz at oracle.com> wrote:

> On Jun 28, 2015, at 7:11 AM, ShinyaYoshida <bitterfoxc at gmail.com> wrote:
> > 2. Opinion for the behavior of the temporary variable.
> > His opinion is "Currently the temporary variable can be re-assigned, but it
> > doesn't make sense. It should be final.":
> >
> > -> 0
> > |  Expression value is: 0
> > |    assigned to temporary variable $1 of type int
> >
> > -> $1 = 10
> > |  Variable $1 has been assigned the value 10
> >
>
> I was wondering about that too. So far i have persuaded myself this 
> behaviour is ok since it is not possible to have explicit `final` variables:
>
>   -> final int i = 0
>   |  Warning:
>   |  Modifier 'final' not permitted in top-level declarations, ignored
>   |  final int i = 0;
>   |  ^---^
>   |  Added variable i of type int with initial value 0
>
>
> I noticed another potential inconsistency:
>
>   -> "foo"
>   |  Expression value is: "foo"
>   |    assigned to temporary variable $1 of type String
>
>   -> int x = 1
>   |  Added variable x of type int with initial value 1
>
>   -> x
>   |  Variable x of type int has value 1
>
> I was expecting x to be assigned to a temporary variable.
>
> Separately, it may not be that hard to support the following gIven the 
> support for assigning the value of an expression to a temporary variable:
>
>   > x = 1
>   |  Added variable x of type int with initial value 1
>
> Paul.




More information about the kulla-dev mailing list