Skip to content
This repository has been archived by the owner. It is now read-only.

Commit 6f87972

Browse files
committed
Merge branch 'pr/359' into wip/integration
2 parents 0d63710 + 0b33327 commit 6f87972

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

src/main/contraband-java/xsbti/compile/CompileOptions.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ public static CompileOptions create() {
1313
public static CompileOptions of() {
1414
return new CompileOptions();
1515
}
16-
public static CompileOptions create(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, xsbti.F1<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
16+
public static CompileOptions create(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, java.util.function.Function<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
1717
return new CompileOptions(_classpath, _sources, _classesDirectory, _scalacOptions, _javacOptions, _maxErrors, _sourcePositionMapper, _order);
1818
}
19-
public static CompileOptions of(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, xsbti.F1<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
19+
public static CompileOptions of(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, java.util.function.Function<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
2020
return new CompileOptions(_classpath, _sources, _classesDirectory, _scalacOptions, _javacOptions, _maxErrors, _sourcePositionMapper, _order);
2121
}
2222
/**
@@ -35,7 +35,7 @@ public static CompileOptions of(java.io.File[] _classpath, java.io.File[] _sourc
3535
/** The options to pass to the Java compiler other than the sources and classpath to use. */
3636
private String[] javacOptions;
3737
private int maxErrors;
38-
private xsbti.F1<xsbti.Position, xsbti.Position> sourcePositionMapper;
38+
private java.util.function.Function<xsbti.Position, xsbti.Position> sourcePositionMapper;
3939
/** Controls the order in which Java and Scala sources are compiled. */
4040
private xsbti.compile.CompileOrder order;
4141
protected CompileOptions() {
@@ -46,10 +46,10 @@ protected CompileOptions() {
4646
scalacOptions = new String[0];
4747
javacOptions = new String[0];
4848
maxErrors = 100;
49-
sourcePositionMapper = new xsbti.F1<xsbti.Position, xsbti.Position>() { public xsbti.Position apply(xsbti.Position a) { return a; } };
49+
sourcePositionMapper = new java.util.function.Function<xsbti.Position, xsbti.Position>() { public xsbti.Position apply(xsbti.Position a) { return a; } };
5050
order = xsbti.compile.CompileOrder.Mixed;
5151
}
52-
protected CompileOptions(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, xsbti.F1<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
52+
protected CompileOptions(java.io.File[] _classpath, java.io.File[] _sources, java.io.File _classesDirectory, String[] _scalacOptions, String[] _javacOptions, int _maxErrors, java.util.function.Function<xsbti.Position, xsbti.Position> _sourcePositionMapper, xsbti.compile.CompileOrder _order) {
5353
super();
5454
classpath = _classpath;
5555
sources = _sources;
@@ -78,7 +78,7 @@ public String[] javacOptions() {
7878
public int maxErrors() {
7979
return this.maxErrors;
8080
}
81-
public xsbti.F1<xsbti.Position, xsbti.Position> sourcePositionMapper() {
81+
public java.util.function.Function<xsbti.Position, xsbti.Position> sourcePositionMapper() {
8282
return this.sourcePositionMapper;
8383
}
8484
public xsbti.compile.CompileOrder order() {
@@ -102,7 +102,7 @@ public CompileOptions withJavacOptions(String[] javacOptions) {
102102
public CompileOptions withMaxErrors(int maxErrors) {
103103
return new CompileOptions(classpath, sources, classesDirectory, scalacOptions, javacOptions, maxErrors, sourcePositionMapper, order);
104104
}
105-
public CompileOptions withSourcePositionMapper(xsbti.F1<xsbti.Position, xsbti.Position> sourcePositionMapper) {
105+
public CompileOptions withSourcePositionMapper(java.util.function.Function<xsbti.Position, xsbti.Position> sourcePositionMapper) {
106106
return new CompileOptions(classpath, sources, classesDirectory, scalacOptions, javacOptions, maxErrors, sourcePositionMapper, order);
107107
}
108108
public CompileOptions withOrder(xsbti.compile.CompileOrder order) {

src/main/contraband/incremental.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,8 @@
301301
},
302302
{
303303
"name": "sourcePositionMapper",
304-
"type": "xsbti.F1<xsbti.Position, xsbti.Position>",
305-
"default": "new xsbti.F1<xsbti.Position, xsbti.Position>() { public xsbti.Position apply(xsbti.Position a) { return a; } }",
304+
"type": "java.util.function.Function<xsbti.Position, xsbti.Position>",
305+
"default": "new java.util.function.Function<xsbti.Position, xsbti.Position>() { public xsbti.Position apply(xsbti.Position a) { return a; } }",
306306
"since": "0.1.0"
307307
},
308308
{

src/main/java/xsbti/api/SafeLazy.java

+11-8
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,43 @@
77

88
package xsbti.api;
99

10+
import java.util.function.Supplier;
11+
1012
/**
1113
* Implement a Scala `lazy val` in Java for the facing sbt interface.
1214
*
1315
* It holds a reference to a thunk that is lazily evaluated and then
1416
* its reference is clear to avoid memory leaks in memory-intensive code.
15-
* It needs to be defined in [[xsbti]] or a subpackage, see
16-
* [[xsbti.api.Lazy]] or [[xsbti.F0]] for similar definitions.
17+
* It needs to be defined in [[xsbti]] or a subpackage, see [[xsbti.api.Lazy]]
18+
* for similar definitions.
1719
*/
1820
public final class SafeLazy {
1921

2022
/* We do not use conversions from and to Scala functions because [[xsbti]]
2123
* cannot hold any reference to Scala code nor the Scala library. */
2224

2325
/** Return a sbt [[xsbti.api.Lazy]] from a given Scala parameterless function. */
24-
public static <T> xsbti.api.Lazy<T> apply(xsbti.F0<T> sbtThunk) {
26+
public static <T> xsbti.api.Lazy<T> apply(Supplier<T> sbtThunk) {
2527
return new Impl<T>(sbtThunk);
2628
}
2729

2830
/** Return a sbt [[xsbti.api.Lazy]] from a strict value. */
2931
public static <T> xsbti.api.Lazy<T> strict(T value) {
3032
// Convert strict parameter to sbt function returning it
31-
return apply(new xsbti.F0<T>() {
32-
public T apply() {
33+
return apply(new Supplier<T>() {
34+
@Override
35+
public T get() {
3336
return value;
3437
}
3538
});
3639
}
3740

3841
private static final class Impl<T> extends xsbti.api.AbstractLazy<T> {
39-
private xsbti.F0<T> thunk;
42+
private Supplier<T> thunk;
4043
private T result;
4144
private boolean flag = false;
4245

43-
Impl(xsbti.F0<T> thunk) {
46+
Impl(Supplier<T> thunk) {
4447
this.thunk = thunk;
4548
}
4649

@@ -52,7 +55,7 @@ private static final class Impl<T> extends xsbti.api.AbstractLazy<T> {
5255
public T get() {
5356
if (flag) return result;
5457
else {
55-
result = thunk.apply();
58+
result = thunk.get();
5659
flag = true;
5760
// Clear reference so that thunk is GC'ed
5861
thunk = null;

0 commit comments

Comments
 (0)