Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InstanceOfPatternMatch adding invalid extra initalization #305

Open
mathewm3 opened this issue Jun 27, 2024 · 1 comment
Open

InstanceOfPatternMatch adding invalid extra initalization #305

mathewm3 opened this issue Jun 27, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@mathewm3
Copy link

What version of OpenRewrite are you using?

I am using

  • rewrite-maven-plugin 5.32.1
  • rewrite-migrate-java 2.16.0

How are you running OpenRewrite?

I am using the Maven plugin, and my project is a single module project.

           <plugin>
                <groupId>org.openrewrite.maven</groupId>
                <artifactId>rewrite-maven-plugin</artifactId>
                <version>5.32.1</version>
                <configuration>
                    <activeRecipes>
                       <recipe>org.openrewrite.java.migrate.UpgradeToJava17</recipe>
                    </activeRecipes>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.openrewrite.recipe</groupId>
                        <artifactId>rewrite-migrate-java</artifactId>
                        <version>2.16.0</version>
                    </dependency>
                </dependencies>
            </plugin>

What is the smallest, simplest way to reproduce the problem?

        if (obj instanceof Contact) {
            if (fieldName.equals("FIRST_NAME")) {
                Contact cont = (Contact) obj;
                return getContactLink(cont, null, cont.getFirstName());
            } else if (fieldName.equals("LAST_NAME")) {
                Contact cont = (Contact) obj;
                return getContactLink(cont, null, cont.getLastName());
            } else if (fieldName.equals("FULL_NAME")) {
                Contact cont = (Contact) obj;
                return getContactLink(cont, null, cont.getDisplayName());
            }
        }

What did you expect to see?

        if (obj instanceof Contact cont) {
            if (fieldName.equals("FIRST_NAME")) {
                return getContactLink(cont, null, cont.getFirstName());
            } else if (fieldName.equals("LAST_NAME")) {
                return getContactLink(cont, null, cont.getLastName());
            } else if (fieldName.equals("FULL_NAME")) {
                return getContactLink(cont, null, cont.getDisplayName());
            }
        }

What did you see instead?

        if (obj instanceof Contact cont) {
            if (fieldName.equals("FIRST_NAME")) {
                return getContactLink(cont, null, cont.getFirstName());
            } else if (fieldName.equals("LAST_NAME")) {
                Contact cont = cont;
                return getContactLink(cont, null, cont.getLastName());
            } else if (fieldName.equals("FULL_NAME")) {
                Contact cont = cont;
                return getContactLink(cont, null, cont.getDisplayName());
            }
        }

What is the full stack trace of any errors you encountered?

stacktrace output here

Are you interested in contributing a fix to OpenRewrite?

@mathewm3 mathewm3 added the bug Something isn't working label Jun 27, 2024
@timtebeek timtebeek moved this to Backlog in OpenRewrite Jun 27, 2024
@timtebeek
Copy link
Contributor

Thanks for reporting this issue @mathewm3 ; This one's new to me; the very clear examples help!

If you're interested in helping to resolve this issue then a draft pull request with these cases as a unit test would be a great start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Backlog
Development

No branches or pull requests

2 participants