Skip to content

Commit 317eff6

Browse files
fix(ast): removed lambda void return type check (#1019)
Fix for Issue #843. This pull request modifies allows the creation of lambda expressions that have void as return type. The main change was made in engine/ast/LambdaExpr.java
1 parent 27a8aa2 commit 317eff6

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

src/main/java/com/google/api/generator/engine/ast/LambdaExpr.java

-3
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,6 @@ public Builder setReturnExpr(Expr expr) {
6767

6868
public LambdaExpr build() {
6969
LambdaExpr lambdaExpr = autoBuild();
70-
Preconditions.checkState(
71-
!lambdaExpr.returnExpr().expr().type().equals(TypeNode.VOID),
72-
"Lambdas cannot return void-typed expressions.");
7370
// Must be a declaration.
7471
lambdaExpr.arguments().stream()
7572
.forEach(

src/test/java/com/google/api/generator/engine/ast/LambdaExprTest.java

+10-11
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,16 @@ public void validLambdaExpr_withBody() {
8585
}
8686

8787
@Test
88-
public void invalidLambdaExpr_returnsVoid() {
89-
assertThrows(
90-
IllegalStateException.class,
91-
() ->
92-
LambdaExpr.builder()
93-
.setReturnExpr(
94-
MethodInvocationExpr.builder()
95-
.setMethodName("foo")
96-
.setReturnType(TypeNode.VOID)
97-
.build())
98-
.build());
88+
public void validLambdaExpr_returnsVoid() {
89+
LambdaExpr voidLambda =
90+
LambdaExpr.builder()
91+
.setReturnExpr(
92+
MethodInvocationExpr.builder()
93+
.setMethodName("foo")
94+
.setReturnType(TypeNode.VOID)
95+
.build())
96+
.build();
97+
assertEquals(TypeNode.VOID, voidLambda.returnExpr().type());
9998
}
10099

101100
@Test

0 commit comments

Comments
 (0)