diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
commit | d030467ed4b417c910bfb063a5e77e4a49553d82 (patch) | |
tree | 5e158d35a3cbb0110ffd52392bd33668f60a0408 /vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java | |
parent | d29d335828d98e248f1cb593882d2d4f08fe702c (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.java | 5 |
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); } |