Skip to content

Conversation

@srikanth-sankaran
Copy link
Contributor

@srikanth-sankaran srikanth-sankaran commented Nov 14, 2024

@srikanth-sankaran srikanth-sankaran self-assigned this Nov 14, 2024
@srikanth-sankaran srikanth-sankaran added this to the MilestoneNxt milestone Nov 14, 2024
@srikanth-sankaran srikanth-sankaran force-pushed the enhanced-switch-v2.0 branch 10 times, most recently from e6e7150 to 788c361 Compare November 22, 2024 10:47
@srikanth-sankaran srikanth-sankaran force-pushed the enhanced-switch-v2.0 branch 3 times, most recently from 7bed7f4 to c2ce23c Compare November 23, 2024 08:51
@srikanth-sankaran srikanth-sankaran linked an issue Nov 23, 2024 that may be closed by this pull request
@srikanth-sankaran srikanth-sankaran force-pushed the enhanced-switch-v2.0 branch 6 times, most recently from 2a359de to 4014d90 Compare November 24, 2024 01:16
@eclipse-jdt-bot
Copy link
Contributor

eclipse-jdt-bot commented Nov 25, 2024

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

org.eclipse.jdt.core/META-INF/MANIFEST.MF
org.eclipse.jdt.core/pom.xml

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From e987a4db3c6d524ee9c45ce96e5cb9c9071eb97a Mon Sep 17 00:00:00 2001
From: Eclipse JDT Bot <[email protected]>
Date: Mon, 25 Nov 2024 18:04:40 +0000
Subject: [PATCH] Version bump(s) for 4.35 stream


diff --git a/org.eclipse.jdt.core/META-INF/MANIFEST.MF b/org.eclipse.jdt.core/META-INF/MANIFEST.MF
index 0a624e97aa..8fc000b414 100644
--- a/org.eclipse.jdt.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jdt.core; singleton:=true
-Bundle-Version: 3.40.0.qualifier
+Bundle-Version: 3.40.100.qualifier
 Bundle-Activator: org.eclipse.jdt.core.JavaCore
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/org.eclipse.jdt.core/pom.xml b/org.eclipse.jdt.core/pom.xml
index 66baa177d4..856bb48399 100644
--- a/org.eclipse.jdt.core/pom.xml
+++ b/org.eclipse.jdt.core/pom.xml
@@ -17,7 +17,7 @@
     <version>4.35.0-SNAPSHOT</version>
   </parent>
   <artifactId>org.eclipse.jdt.core</artifactId>
-  <version>3.40.0-SNAPSHOT</version>
+  <version>3.40.100-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
-- 
2.47.0

Further information are available in Common Build Issues - Missing version increments.

@srikanth-sankaran srikanth-sankaran changed the title Enhanced switch v2.0 Enhanced switch v2.0 - Part I Nov 25, 2024
@srikanth-sankaran
Copy link
Contributor Author

srikanth-sankaran commented Nov 26, 2024

This pull request changes some projects for the first time in this development cycle. Therefore the following files need a version increment:

org.eclipse.jdt.core/META-INF/MANIFEST.MF
org.eclipse.jdt.core/pom.xml

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
Further information are available in Common Build Issues - Missing version increments.

@HannesWell , I hear from @iloveeclipse that this automatic increment of versions in the new development cycle is your contribution. It used to irritate me to have to do that manually - thank you so much for this feature 👍 👏

@srikanth-sankaran srikanth-sankaran merged commit a589ad2 into eclipse-jdt:master Nov 26, 2024
8 checks passed
@srikanth-sankaran srikanth-sankaran deleted the enhanced-switch-v2.0 branch November 26, 2024 08:49
@akurtakov
Copy link
Contributor

Do we expect comparator issues coming from this one? If yes, I would rather start an I-build now so they can be looked at today.

@srikanth-sankaran
Copy link
Contributor Author

Do we expect comparator issues coming from this one? If yes, I would rather start an I-build now so they can be looked at today.

I doubt it - there are some class file and code generation changes for sure particularly in the context of #3321 but that likely affects only Java 21 sources.

That we didn't see any comparator issues in jdt's own CI build is a sign.

All that said, this is a massive, near complete rewrite of various portions of switch/case handling.
Why don't we get started sooner - yes, please trigger an I-Build now so we will know for sure.

Thanks very much @akurtakov

@akurtakov
Copy link
Contributor

Here it is https://ci.eclipse.org/releng/job/Builds/job/I-build-4.35/4/

@srikanth-sankaran
Copy link
Contributor Author

04:38:30 [ERROR] Cannot resolve dependencies of project org.eclipse.platform.feature:org.eclipse.platform:eclipse-feature:4.35.0-SNAPSHOT
04:38:30 [ERROR] with context {osgi.os=linux, org.eclipse.update.install.features=true, osgi.arch=x86_64, org.eclipse.update.install.sources=true, osgi.ws=gtk, org.eclipse.jdt.buildtime=true}
04:38:30 [ERROR] Software being installed: org.eclipse.platform.feature.group 4.35.0.qualifier
04:38:30 [ERROR] Missing requirement: org.eclipse.help.feature.group 2.3.2100.v20241126-0613 requires 'org.eclipse.equinox.p2.iu; org.eclipse.help.base [4.4.700.v20241126-0110,4.4.700.v20241126-0110]' but it could not be found
04:38:30 [ERROR] Cannot satisfy dependency: org.eclipse.platform.feature.group 4.35.0.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.feature.group 0.0.0: See log for details
04:38:30 [ERROR] -> [Help 1]

Not sure if this is the root problem

If a rebuild is triggered, we may as well include the commit srikanth-sankaran@1cf69bb that just got merged -

@srikanth-sankaran
Copy link
Contributor Author

04:38:30 [ERROR] Cannot resolve dependencies of project org.eclipse.platform.feature:org.eclipse.platform:eclipse-feature:4.35.0-SNAPSHOT 04:38:30 [ERROR] with context {osgi.os=linux, org.eclipse.update.install.features=true, osgi.arch=x86_64, org.eclipse.update.install.sources=true, osgi.ws=gtk, org.eclipse.jdt.buildtime=true} 04:38:30 [ERROR] Software being installed: org.eclipse.platform.feature.group 4.35.0.qualifier 04:38:30 [ERROR] Missing requirement: org.eclipse.help.feature.group 2.3.2100.v20241126-0613 requires 'org.eclipse.equinox.p2.iu; org.eclipse.help.base [4.4.700.v20241126-0110,4.4.700.v20241126-0110]' but it could not be found 04:38:30 [ERROR] Cannot satisfy dependency: org.eclipse.platform.feature.group 4.35.0.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.feature.group 0.0.0: See log for details 04:38:30 [ERROR] -> [Help 1]

Not sure if this is the root problem

If a rebuild is triggered, we may as well include the commit srikanth-sankaran@1cf69bb that just got merged -

I meant this commit: 1cf69bb

@srikanth-sankaran
Copy link
Contributor Author

@akurtakov - I am not familiar with the build set up so unable to analyze the next steps ...

@akurtakov
Copy link
Contributor

https://ci.eclipse.org/releng/job/Builds/job/I-build-4.35/6/consoleFull went beyond the previous failures. For the record - I-builds always use master of all submodules so this commit should be included in this build.

@HannesWell
Copy link
Contributor

Git patch
Further information are available in Common Build Issues - Missing version increments.

@HannesWell , I hear from @iloveeclipse that this automatic increment of versions in the new development cycle is your contribution. It used to irritate me to have to do that manually - thank you so much for this feature 👍 👏

You are very welcome and thanks for the nice words. I'm glad it it's helpful. :)
But you also have to thank @laeubi who created the foundations in Tycho on top of which the workflows are built.

@srikanth-sankaran
Copy link
Contributor Author

Thanks to you too @laeubi 👍

robstryker pushed a commit to robstryker/eclipse.jdt.core that referenced this pull request Feb 6, 2025
* Reimplement resolution, analysis and bookkeeping involved with `CaseStatement` and resolution of `SwitchStatement` for a streamlined and cleaner implementation resulting in readily obvious control flow and minimization of state.
* Report non-constant label expressions during resolution rather than waiting for flow analysis phase.
* Change how duplicate label expressions are reported. Don't blame the whole case, just the duplicate expression; Don't blame the original, just the duplicate.
* Represent qualified enumerators with qualified names internally so to avoid name clashes
* Eliminate the hack to inject synthetic `BreakStatement` in label rule switch blocks. Enhance the code generator to handle these explicitly.
* Simplify the implementation of SwitchStatement.getFallThroughState correcting various issues.
* Eliminate the unnecessary vector `SwitchStatement.constMapping` that is passed to `org.eclipse.jdt.internal.compiler.codegen.CodeStream.tableswitch` - constanMapping[i] == i always!
* Enable various tests in `PrimitiveInPatternsTest.java` that were disabled, fixing broken tests; Remove their disabled cousins from `PrimitiveInPatternsTestSH.java`
* Add a disabled regression test for eclipse-jdt#3319 (not yet understood/fixed)
* Numerous defect fixes as listed below

* Fixes eclipse-jdt#3336
* Fixes eclipse-jdt#3318
* Fixes eclipse-jdt#3320
* Fixes eclipse-jdt#3321
* Fixes eclipse-jdt#3334
* Fixes eclipse-jdt#3335
* Fixes eclipse-jdt#3265
* Fixes eclipse-jdt#3169
* Fixes eclipse-jdt#3339
* Fixes eclipse-jdt#3337
* Fixes eclipse-jdt#3344
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment