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 | |
parent | d29d335828d98e248f1cb593882d2d4f08fe702c (diff) |
Allow quoted string slice labels
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/TypeResolver.java | 4 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java | 5 |
2 files changed, 3 insertions, 6 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/TypeResolver.java b/vespajlib/src/main/java/com/yahoo/tensor/TypeResolver.java index dad93734b22..457cfcbfa5f 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/TypeResolver.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/TypeResolver.java @@ -2,13 +2,9 @@ package com.yahoo.tensor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; import static com.yahoo.tensor.TensorType.Dimension; 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); } |