Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions generator/Generator.sc
Original file line number Diff line number Diff line change
Expand Up @@ -1105,7 +1105,7 @@ def generateMainClasses(): Unit = {
private static final long serialVersionUID = 1L;

private final Pattern0<T> pattern;
private final $FunctionType<? super T, ? extends R> f;
private transient final $FunctionType<? super T, ? extends R> f;

private Case0(Pattern0<T> pattern, $FunctionType<? super T, ? extends R> f) {
this.pattern = pattern;
Expand All @@ -1131,13 +1131,18 @@ def generateMainClasses(): Unit = {
case 2 => BiFunctionType
case _ => s"Function$i"
}
val accessModifier = i match {
case 1 => "transient final"
case 2 => "transient final"
case _ => "final"
}
xs"""
public static final class Case$i<T, $generics, R> implements Case<T, R> {

private static final long serialVersionUID = 1L;

private final Pattern$i<T, $generics> pattern;
private final $functionType<$argTypes, ? extends R> f;
private $accessModifier $functionType<$argTypes, ? extends R> f;

private Case$i(Pattern$i<T, $generics> pattern, $functionType<$argTypes, ? extends R> f) {
this.pattern = pattern;
Expand Down Expand Up @@ -2354,7 +2359,9 @@ def generateMainClasses(): Unit = {
/**
* The base interface of all tuples.
*/
public interface Tuple {
public interface Tuple extends ${im.getType("java.io.Serializable")} {

long serialVersionUID = 1L;

/**
* The maximum arity of an Tuple.
Expand Down Expand Up @@ -2438,7 +2445,10 @@ def generateMainClasses(): Unit = {
/**
* Helper to replace reflective array access.
*/
interface ArrayType<T> {
interface ArrayType<T> extends Serializable {

long serialVersionUID = 1L;

@SuppressWarnings("unchecked")
static <T> ArrayType<T> obj() { return (ArrayType<T>) ObjectArrayType.INSTANCE; }

Expand Down
5 changes: 4 additions & 1 deletion src-gen/main/java/io/vavr/Tuple.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,16 @@

import io.vavr.collection.Seq;
import io.vavr.collection.Stream;
import java.io.Serializable;
import java.util.Map;
import java.util.Objects;

/**
* The base interface of all tuples.
*/
public interface Tuple {
public interface Tuple extends Serializable {

long serialVersionUID = 1L;

/**
* The maximum arity of an Tuple.
Expand Down
5 changes: 4 additions & 1 deletion src-gen/main/java/io/vavr/collection/ArrayType.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,10 @@
/**
* Helper to replace reflective array access.
*/
interface ArrayType<T> {
interface ArrayType<T> extends Serializable {

long serialVersionUID = 1L;

@SuppressWarnings("unchecked")
static <T> ArrayType<T> obj() { return (ArrayType<T>) ObjectArrayType.INSTANCE; }

Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/vavr/collection/Array.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public final class Array<T> implements IndexedSeq<T>, Serializable {

private static final Array<?> EMPTY = new Array<>(new Object[0]);

@SuppressWarnings("serial") // Conditionally serializable
private final Object[] delegate;

private Array(Object[] delegate) {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/vavr/collection/BitMappedTrie.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ final class BitMappedTrie<T> implements Serializable {
static <T> BitMappedTrie<T> empty() { return (BitMappedTrie<T>) EMPTY; }

final ArrayType<T> type;
@SuppressWarnings("serial") // Conditionally serializable
private final Object array;
private final int offset, length;
private final int depthShift;
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/io/vavr/collection/HashArrayMappedTrie.java
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,9 @@ final class LeafSingleton<K, V> extends LeafNode<K, V> implements Serializable {
private static final long serialVersionUID = 1L;

private final int hash;
@SuppressWarnings("serial") // Conditionally serializable
private final K key;
@SuppressWarnings("serial") // Conditionally serializable
private final V value;

LeafSingleton(int hash, K key, V value) {
Expand Down Expand Up @@ -449,7 +451,9 @@ final class LeafList<K, V> extends LeafNode<K, V> implements Serializable {
private static final long serialVersionUID = 1L;

private final int hash;
@SuppressWarnings("serial") // Conditionally serializable
private final K key;
@SuppressWarnings("serial") // Conditionally serializable
private final V value;
private final int size;
private final LeafNode<K, V> tail;
Expand Down Expand Up @@ -598,6 +602,7 @@ final class IndexedNode<K, V> extends AbstractNode<K, V> implements Serializable

private final int bitmap;
private final int size;
@SuppressWarnings("serial") // Conditionally serializable
private final Object[] subNodes;

IndexedNode(int bitmap, int size, Object[] subNodes) {
Expand Down Expand Up @@ -711,6 +716,7 @@ final class ArrayNode<K, V> extends AbstractNode<K, V> implements Serializable {

private static final long serialVersionUID = 1L;

@SuppressWarnings("serial") // Conditionally serializable
private final Object[] subNodes;
private final int count;
private final int size;
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/io/vavr/collection/RedBlackTree.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@
*
* @param <T> Component type
*/
interface RedBlackTree<T> extends Iterable<T> {
interface RedBlackTree<T> extends Iterable<T>, Serializable {

long serialVersionUID = 1L;

static <T> RedBlackTree<T> empty(Comparator<? super T> comparator) {
Objects.requireNonNull(comparator, "comparator is null");
Expand Down Expand Up @@ -351,6 +353,7 @@ final class Node<T> implements RedBlackTree<T>, Serializable {
final Color color;
final int blackHeight;
final RedBlackTree<T> left;
@SuppressWarnings("serial")
final T value;
final RedBlackTree<T> right;
final Empty<T> empty;
Expand Down Expand Up @@ -828,6 +831,7 @@ final class Empty<T> implements RedBlackTree<T>, Serializable {

private static final long serialVersionUID = 1L;

@SuppressWarnings("serial") // Conditionally serializable
final Comparator<T> comparator;

// This is no public API! The RedBlackTree takes care of passing the correct Comparator.
Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/vavr/collection/Tree.java
Original file line number Diff line number Diff line change
Expand Up @@ -833,6 +833,7 @@ public static final class Node<T> extends Tree<T> implements Serializable {

private static final long serialVersionUID = 1L;

@SuppressWarnings("serial") // Conditionally serializable
private final T value;
private final io.vavr.collection.List<Node<T>> children;

Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/vavr/collection/TreeMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -1533,6 +1533,7 @@ final class Specific<K, V> implements EntryComparator<K, V> {

private static final long serialVersionUID = 1L;

@SuppressWarnings("serial") // Conditionally serializable
private final Comparator<K> keyComparator;

@SuppressWarnings("unchecked")
Expand Down
2 changes: 2 additions & 0 deletions src/test/java/io/vavr/collection/BitSetTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,9 @@ private static final class Mapper<T> implements Serializable {

private static final long serialVersionUID = 1L;

@SuppressWarnings("serial") // Conditionally serializable
private final java.util.Map<Integer, T> fromIntMap = new java.util.HashMap<>();
@SuppressWarnings("serial") // Conditionally serializable
private final java.util.Map<T, Integer> toIntMap = new java.util.HashMap<>();
private int nextValue = 0;

Expand Down