Skip to content

[Bug]: Sniper printer throws SpoonException on switch with type-pattern label #6846

Description

@GooDer

Describe the bug

 spoon.SpoonException: The element of class ...CtCaseImpl does not have CtRole.PATTERN                                                                                                                                            
      at RoleHandlerHelper.getRoleHandler(RoleHandlerHelper.java:54)                                                                                                                                                               
      at ElementSourceFragment.getRoleHandler(ElementSourceFragment.java:271)                                                                                                                                                      
      at CtScanner.visitCtCasePattern(CtScanner.java:1103)   

Source code you are trying to analyze/transform

class SwitchCasePattern {

	String describe(Object value) {
		return switch (value) {
			case Integer i -> "int:" + i;
			case String s -> "str:" + s;
			default -> "other";
		};
	}
}

Source code for your Spoon processing

Actual output

empty java file after crash

Expected output

class SwitchCasePattern {

	String describe(Object value) {
		return switch (value) {
			case Integer i -> "int:" + i;
			case String s -> "str:" + s;
			default -> "other";
		};
	}
}

Spoon Version

v11.5.0 also in v11.5.1-beta-4

JVM Version

21

What operating system are you using?

Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions