google / google/j2objc

warning: (Recovered) Internal inconsistency detected during lambda shape analysis

Open
#725 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6k
Forks
999
Avg merge
19h 20m
Merged PRs (30d)
14

Description

When transpiling nested lambda expression, the transpiler response in some cases with the warning `(Recovered) Internal inconsistency detected during lambda shape analysis`. But the transpiled code seems to work:

``` java
import org.junit.Test;

import static junit.framework.Assert.assertEquals;

public class J2ObjCLambdasTests {

public interface Func1 {

TRes invoke(T1 arg1) throws TException;
}

public interface Func {

TRes invoke() throws TException;
}

private T runFunc(Func f) {
return f.invoke();
}

private T loop(final Func1 f) {
f.invoke(1);
return f.invoke(0);
}

...

@Test
// warning: (Recovered) Internal inconsistency detected during lambda shape analysis
public void testNestedLambdaWarnings() {

String vOuter = "x";

String actual = loop(i -> {
return loop(ii -> {
return loop(iii -> "y" + i + " " + ii + " " + iii);
});
});

String expected = "y0 0 0";
assertEquals("expected '" + expected + "', actual: '" + actual + "'.", expected, actual);
}

...

}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.