-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Transformer: Add try-with-resources Java 7/9 language support, #53
It turns out we somehow missed try-with-resources Java 7 support, and no one has complained yet. This adds support for the Java 7 case, as well as the Java 9 more concise syntax if the `try` is initialized with a name expression resource instead of a variable declaration.
- Loading branch information
Showing
14 changed files
with
252 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/// Expect: | ||
/// - output: "Creating TryableResource 1\nCreating TryableResource 2\nHello world!\nClosing TryableResource 2\nClosing TryableResource 1\nFinally\n" | ||
package example; | ||
|
||
public class Program { | ||
public static void main(String[] args) { | ||
try (TryableResource resource1 = new TryableResource(); | ||
TryableResource resource2 = new TryableResource()) { | ||
System.out.println("Hello world!"); | ||
} catch (Exception ignored) { | ||
} finally { | ||
System.out.println("Finally"); | ||
} | ||
} | ||
|
||
public static class TryableResource implements AutoCloseable { | ||
private static int counter = 1; | ||
private final int id = counter++; | ||
public TryableResource() { | ||
System.out.println("Creating TryableResource " + id); | ||
} | ||
@Override | ||
public void close() throws Exception { | ||
System.out.println("Closing TryableResource " + id); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/// Expect: | ||
/// - output: "Creating TryableResource 1\nCreating TryableResource 2\nHello world!\nClosing TryableResource 2\nClosing TryableResource 1\nFinally\n" | ||
package example; | ||
|
||
public class Program { | ||
public static void main(String[] args) { | ||
TryableResource resource1 = new TryableResource(); | ||
TryableResource resource2 = new TryableResource(); | ||
|
||
try (resource1; resource2) { | ||
System.out.println("Hello world!"); | ||
} catch (Exception ignored) { | ||
} finally { | ||
System.out.println("Finally"); | ||
} | ||
} | ||
|
||
public static class TryableResource implements AutoCloseable { | ||
private static int counter = 1; | ||
private final int id = counter++; | ||
public TryableResource() { | ||
System.out.println("Creating TryableResource " + id); | ||
} | ||
@Override | ||
public void close() throws Exception { | ||
System.out.println("Closing TryableResource " + id); | ||
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.