aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-02-15 11:19:46 +0100
committerJon Bratseth <bratseth@gmail.com>2022-02-15 11:19:46 +0100
commitd030467ed4b417c910bfb063a5e77e4a49553d82 (patch)
tree5e158d35a3cbb0110ffd52392bd33668f60a0408 /vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
parentd29d335828d98e248f1cb593882d2d4f08fe702c (diff)
Allow quoted string slice labels
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
index a6f71dacf30..09bfb8b996b 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
@@ -121,14 +121,13 @@ public class Slice<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMETY
private TensorType resultType(TensorType argumentType) {
List<String> peekDimensions;
-
// Special case where a single indexed or mapped dimension is sliced
if (subspaceAddress.size() == 1 && subspaceAddress.get(0).dimension().isEmpty()) {
if (subspaceAddress.get(0).index().isPresent()) {
peekDimensions = findDimensions(argumentType.dimensions(), TensorType.Dimension::isIndexed);
if (peekDimensions.size() > 1) {
throw new IllegalArgumentException(this + " slices a single indexed dimension, cannot be applied " +
- "to " + argumentType + ", which has multiple");
+ "to " + argumentType + ", which has multiple");
}
}
else {
@@ -141,6 +140,8 @@ public class Slice<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMETY
else { // general slicing
peekDimensions = subspaceAddress.stream().map(d -> d.dimension().get()).collect(Collectors.toList());
}
+ if (peekDimensions.isEmpty())
+ throw new IllegalArgumentException(this + " cannot slice " + argumentType + ": No dimensions to slice");
return TypeResolver.peek(argumentType, peekDimensions);
}