From a2bebb8d46927257ff93f34bb902a104f53cfd90 Mon Sep 17 00:00:00 2001 From: Hamza REMMAL Date: Thu, 15 Feb 2024 16:36:32 +0100 Subject: [PATCH] Fix lambda naming convention See: https://stackoverflow.com/questions/65870155/what-is-the-meaning-of-the-classname-from-a-lambda-class-in-java Running JShell with Java 17: ```sh | Welcome to JShell -- Version 17.0.7 | For an introduction type: /help intro jshell> Function x = (Integer x) -> x; x ==> $Lambda$39/0x0000000800c09000@377dca04 jshell> Function x = (Integer x) -> x + 1; x ==> $Lambda$40/0x0000000800c09448@21b8d17c jshell> ``` Running JShell with Java 21: ```sh | Welcome to JShell -- Version 21 | For an introduction type: /help intro jshell> Function x = (Integer x) -> x; x ==> $Lambda/0x000000080100aa00@27fa135a jshell> Function x = (Integer x) -> x + 1; x ==> $Lambda/0x000000080100a400@2b71fc7e jshell> ``` --- tests/run/getclass.check | 4 ++-- tests/run/getclass.scala | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/run/getclass.check b/tests/run/getclass.check index ea73f6127c8f..bdd9db651019 100644 --- a/tests/run/getclass.check +++ b/tests/run/getclass.check @@ -22,5 +22,5 @@ class [D class [Lscala.collection.immutable.List; Functions: -class Test$$$Lambda$ -class Test$$$Lambda$ +class Test$$$Lambda +class Test$$$Lambda diff --git a/tests/run/getclass.scala b/tests/run/getclass.scala index d8a339f8ea5a..4777529033b2 100644 --- a/tests/run/getclass.scala +++ b/tests/run/getclass.scala @@ -38,7 +38,8 @@ object Test { println("\nFunctions:") // FunctionN.getClass.toString has form of "class Test$$$Lambda$N/1349414238", // but "N/1349414238" depends on environment - println(f1.getClass.toString.take("class Test$$$Lambda$".length)) - println(f2.getClass.toString.take("class Test$$$Lambda$".length)) + // The above naming is a convention: See https://stackoverflow.com/questions/65870155/what-is-the-meaning-of-the-classname-from-a-lambda-class-in-java + println(f1.getClass.toString.take("class Test$$$Lambda".length)) + println(f2.getClass.toString.take("class Test$$$Lambda".length)) } }