diff --git a/src/main/java/io/usethesource/vallang/IListWriter.java b/src/main/java/io/usethesource/vallang/IListWriter.java index f51f41b0..4095a419 100644 --- a/src/main/java/io/usethesource/vallang/IListWriter.java +++ b/src/main/java/io/usethesource/vallang/IListWriter.java @@ -23,6 +23,11 @@ */ public interface IListWriter extends IWriter { + @Override + public default IListWriter unique() { + return (IListWriter) IWriter.super.unique(); + } + /** * Inserts elements at a specific position, keeping the argument in order of appearance. * diff --git a/src/main/java/io/usethesource/vallang/ISetWriter.java b/src/main/java/io/usethesource/vallang/ISetWriter.java index d333b46c..8a43e016 100644 --- a/src/main/java/io/usethesource/vallang/ISetWriter.java +++ b/src/main/java/io/usethesource/vallang/ISetWriter.java @@ -13,5 +13,8 @@ package io.usethesource.vallang; public interface ISetWriter extends IWriter { - + @Override + default ISetWriter unique() { + return (ISetWriter) IWriter.super.unique(); + } } diff --git a/src/main/java/io/usethesource/vallang/impl/persistent/ListWriter.java b/src/main/java/io/usethesource/vallang/impl/persistent/ListWriter.java index 84b3f9db..2143e942 100644 --- a/src/main/java/io/usethesource/vallang/impl/persistent/ListWriter.java +++ b/src/main/java/io/usethesource/vallang/impl/persistent/ListWriter.java @@ -49,7 +49,7 @@ private ListWriter(boolean unique) { } @Override - public IWriter unique() { + public IListWriter unique() { return new ListWriter(true); } @@ -239,4 +239,4 @@ public IList done() { public Supplier> supplier() { return () -> new ListWriter(); } -} \ No newline at end of file +} diff --git a/src/main/java/io/usethesource/vallang/impl/reference/ListWriter.java b/src/main/java/io/usethesource/vallang/impl/reference/ListWriter.java index 1ad939ea..8863099d 100644 --- a/src/main/java/io/usethesource/vallang/impl/reference/ListWriter.java +++ b/src/main/java/io/usethesource/vallang/impl/reference/ListWriter.java @@ -55,7 +55,7 @@ private ListWriter(boolean unique) { } @Override - public IWriter unique() { + public IListWriter unique() { return new ListWriter(true); } diff --git a/src/main/java/io/usethesource/vallang/type/FunctionType.java b/src/main/java/io/usethesource/vallang/type/FunctionType.java index b889e1e0..b557dfb8 100644 --- a/src/main/java/io/usethesource/vallang/type/FunctionType.java +++ b/src/main/java/io/usethesource/vallang/type/FunctionType.java @@ -268,7 +268,7 @@ public boolean isSubtypeOfFunction(Type other) { // For example, an overloadeded function `X f(int) + X f(str)` is substitutable at high-order parameter positions of type `X (int)` // even though its function type is `X (value)`. Rascal's type system does not check completeness of function definitions, // only _possible_ applicability in this manner. Every function may throw `CallFailed` at run-time - // if non of their arguments match for none of their alternatives. + // if non of their aguments match for none of their alternatives. FunctionType otherType = (FunctionType) other;