Skip to content

Commit 8efe28d

Browse files
authored
Allow returning ? extends Suggestion or ? extends Iterable<? extends Suggestion>> from suggestion providers (#690)
1 parent 09b3edd commit 8efe28d

File tree

7 files changed

+10
-10
lines changed

7 files changed

+10
-10
lines changed

cloud-annotations/src/test/java/org/incendo/cloud/annotations/feature/MethodSuggestionProviderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void testSuggestions(final @NonNull Object instance) {
7777
);
7878

7979
// Act
80-
final Iterable<Suggestion> suggestions =
80+
final Iterable<? extends Suggestion> suggestions =
8181
this.commandManager.parserRegistry()
8282
.getSuggestionProvider("suggestions")
8383
.orElseThrow(NullPointerException::new)

cloud-core/src/main/java/org/incendo/cloud/internal/SuggestionContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public SuggestionContext(
9595
*
9696
* @param suggestions the suggestions to add
9797
*/
98-
public void addSuggestions(final @NonNull Iterable<@NonNull Suggestion> suggestions) {
98+
public void addSuggestions(final @NonNull Iterable<? extends @NonNull Suggestion> suggestions) {
9999
suggestions.forEach(this::addSuggestion);
100100
}
101101

cloud-core/src/main/java/org/incendo/cloud/parser/standard/EitherParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public EitherParser(final @NonNull ParserDescriptor<C, U> primary, final @NonNul
153153

154154
@Override
155155
@SuppressWarnings({"unchecked", "rawtypes"})
156-
public @NonNull CompletableFuture<@NonNull Iterable<@NonNull Suggestion>> suggestionsFuture(
156+
public @NonNull CompletableFuture<? extends @NonNull Iterable<? extends @NonNull Suggestion>> suggestionsFuture(
157157
final @NonNull CommandContext<C> context,
158158
final @NonNull CommandInput input
159159
) {

cloud-core/src/main/java/org/incendo/cloud/suggestion/BlockingSuggestionProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ interface BlockingSuggestionProvider<C> extends SuggestionProvider<C> {
5757
* @param input the current input
5858
* @return the suggestions
5959
*/
60-
@NonNull Iterable<@NonNull Suggestion> suggestions(@NonNull CommandContext<C> context, @NonNull CommandInput input);
60+
@NonNull Iterable<? extends @NonNull Suggestion> suggestions(@NonNull CommandContext<C> context, @NonNull CommandInput input);
6161

6262
@Override
63-
default @NonNull CompletableFuture<@NonNull Iterable<@NonNull Suggestion>> suggestionsFuture(
63+
default @NonNull CompletableFuture<? extends @NonNull Iterable<? extends @NonNull Suggestion>> suggestionsFuture(
6464
final @NonNull CommandContext<C> context,
6565
final @NonNull CommandInput input
6666
) {

cloud-core/src/main/java/org/incendo/cloud/suggestion/SuggestionProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public interface SuggestionProvider<C> {
5555
* @param input the current input
5656
* @return the suggestions
5757
*/
58-
@NonNull CompletableFuture<@NonNull Iterable<@NonNull Suggestion>> suggestionsFuture(
58+
@NonNull CompletableFuture<? extends @NonNull Iterable<? extends @NonNull Suggestion>> suggestionsFuture(
5959
@NonNull CommandContext<C> context,
6060
@NonNull CommandInput input
6161
);
@@ -132,7 +132,7 @@ static <C> SuggestionProvider<C> noSuggestions() {
132132
* @return suggestion provider
133133
*/
134134
static <C> @NonNull SuggestionProvider<C> suggesting(
135-
final @NonNull Iterable<@NonNull Suggestion> suggestions
135+
final @NonNull Iterable<? extends @NonNull Suggestion> suggestions
136136
) {
137137
return blocking((ctx, input) -> suggestions);
138138
}

cloud-core/src/test/java/org/incendo/cloud/parser/aggregate/AggregateParserTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void testSuggestionsFirstArgument() {
143143
.build();
144144

145145
// Act
146-
final Iterable<Suggestion> suggestions = parser.suggestionProvider()
146+
final Iterable<? extends Suggestion> suggestions = parser.suggestionProvider()
147147
.suggestionsFuture(this.commandContext, CommandInput.empty()).join();
148148

149149
// Assert
@@ -172,7 +172,7 @@ void testSuggestionsSecondArgument() {
172172
.build();
173173

174174
// Act
175-
final Iterable<Suggestion> suggestions = parser.suggestionProvider()
175+
final Iterable<? extends Suggestion> suggestions = parser.suggestionProvider()
176176
.suggestionsFuture(this.commandContext, CommandInput.of("123 ")).join();
177177

178178
// Assert

cloud-core/src/test/java/org/incendo/cloud/parser/standard/EitherParserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void testParsingFailing() {
9393
@Test
9494
void testSuggestions() {
9595
// Act
96-
final Iterable<Suggestion> suggestions = this.parser.suggestionsFuture(this.context, CommandInput.empty()).join();
96+
final Iterable<? extends Suggestion> suggestions = this.parser.suggestionsFuture(this.context, CommandInput.empty()).join();
9797

9898
// Assert
9999
assertThat(suggestions).containsExactly(

0 commit comments

Comments
 (0)