Records are called „methods“ in JShell

Lingo Coder plugins at lingocoder.com
Tue Jul 14 16:15:30 UTC 2020


Hi,

Thanks for looking into this, Jorn.

> „...Are you sure that you are using the right jshell executable, and 
it's not picking up another one that's on the PATH as well?..“

I'm sure :)

I checked, rechecked and then, finally, rechecked that I rechecked. 

How I (re)checked:

1. I cleared the value of $PATH in the terminal where I run JShell
2. I then set the value of $PATH to be the file system location of the
   one and only installation of OpenJDK 15-ea (build 15-ea+31-1502)
3. I checked that the value of $PATH had only the one single entry
4. Does java -version report build 15-ea+31-1502? Confirmed!
5. I launched JShell
6. Created a record named „JShellChecker“; 
7. Observed JShell reports: „created *method* JShellChecker“
8. Edited the record to implement a JShell .exe location check
9. JShell reports: „replaced *method* JShellChecker“

Observe [1] to check that it is really happening as I describe.

TIA.

----
[1] https://imgur.com/NYBdYhn




-------- Original Message --------
Subject: Re:_Records_are_called_„methods“_in_JSh ell
From: Jorn Vernee <jorn.vernee at oracle.com>
Date: Tue, July 14, 2020 3:01 am
To: Lingo Coder <plugins at lingocoder.com>
Cc: kulla-dev <kulla-dev at openjdk.java.net>

Hi,

I was not able to reproduce this with JDK 15 build 31 (the same version 
that you are using).

PS C:\Program Files\Java\jdk-15-b31\bin> ./jshell.exe --enable-preview
|  Welcome to JShell -- Version 15-ea
|  For an introduction type: /help intro

jshell> public record Point(int x, int y) {}
|  created record Point

jshell> /drop Point
|  dropped record Point

Are you sure that you are using the right jshell executable, and it's 
not picking up another one that's on the PATH as well?

Jorn

On 14/07/2020 00:04, Michel Trudeau wrote:
> [Moving this to kulla-dev]
>
> On Jul 12, 2020, at 4:35 PM, Lingo Coder <plugins at lingocoder.com> wrote:
>
> java -version
> openjdk version "15-ea" 2020-09-15
> OpenJDK Runtime Environment (build 15-ea+31-1502)
> OpenJDK 64-Bit Server VM (build 15-ea+31-1502, mixed mode, sharing)
>
> OS: Windows amd64
>
> Steps to reproduce
>
> 1. Create some records...
>
> jshell>public record ConstExpr(Expr e) implements Expr{}
>
> jshell>public record PlusExpr(Expr a, Expr b) implements Expr{}
>
> jshell>public record TimesExpr(Expr x, Expr y) implements Expr{}
>
> jshell>public record NegExpr(Expr n) implements Expr{}
>
>
> 2. Observe that JShell calls the records you just created,
> „methods“...
>
> jshell> ...
> | created method ConstExpr() ...
> | created method PlusExpr() ...
> | created method TimesExpr() ...
> | created method NegExpr() ...
>
> 3. Delete those records. JShell says they're „methods“...
>
> jshell> /drop ConstExpr
> | dropped method ConstExpr()
>
> jshell> /drop PlusExpr
> | dropped method PlusExpr()
>
> jshell> /drop TimesExpr
> | dropped method TimesExpr()
>
> jshell> /drop NegExpr
> | dropped method NegExpr()
>
> Same deal with /edit. I did a screen recording if it's any help. [1]
>
> I couldn't reproduce this in Linux with the same JDK release/build. It
> only happens on Windows.
>
> ----
>
> [1] https://i.imgur.com/ee8sJMf.gif
>
>


More information about the kulla-dev mailing list