klesun / deep-assoc-completion

A phpstorm plugin for associative array key typing and completion
Other
266 stars 17 forks source link

Use iterators instead of recreating array in the map/filter/etc... #47

Closed klesun closed 6 years ago

klesun commented 6 years ago

Should help with the #43

This should drastically increase performance, but raises some issues. I'll describe them here and list possible solutions.

klesun commented 6 years ago

Apparently (paste here your laugh) iterators are disposable. This conflicts with the MultiType class which has methods like hasNumericKeys, getIdeaType, getKeyNames, etc... and they all have to iterate through the types. And after we iterate once, the second time we get an exception.

I believe the MultiType itself should be eliminated. Everything should return DeepType iterator and if you need to perform multiple operations (mostly in the entry function), either explicitly put them in an array there, or think of how to reuse them in one iterator (like doing all operations in one foreach). For the time being I guess best would be to put iterator passed to MultiType to an array and slowly remove all usages of MultiType from the project.

I also have this MemoizingIterable, it have bugs though. It does not help memory and probably wastes a lot of time on storing the iterated values, but it should work conceptually same way as normal iterator so that in the entry function we still have iterator over the final results that are not calculated till you run it.

Another problem is that each expression gets cached upon resolution, but iterator can't be cached since it is disposable. An option, I guess, is to use my MemoizingIterable here. This way we are still iterating types one by one and we can (supposedly) reuse this iterator when taking value from cache.

klesun commented 6 years ago

Rest things in the TODO list:

klesun commented 6 years ago

There is a bug in master:

$wetrParsed = SabreTicketParser::parse($wetrOutput);
$isVoid = function($seg){return $seg[''];};
if (Fp::all($isVoid, $wetrParsed['segments'])) {

Attempts to get completion on $seg[''] result in the exception below. Looks like a FuncCtx somehow became parent of itself. I guess it could be related to the:

.wap(ctxs -> It.cnc(
    ctxs,
    Tls.ifi(areInSameScope(fieldRef, assPsi), () -> list(ctx)),
    Tls.ifi(!ctxs.has(), () -> list(implCtx))

in the FieldRes.java

(did not happen before iterator changes for your information)

(I still suspect the It.cnc, but some exploration makes me think that actual reason is that depth limit does not work anymore thanks to iterators (it was applied statically in SearchCtx))

Fixed in https://github.com/klesun/deep-assoc-completion/commit/6ce1bb376defb241a5338a8e1621a4cf7464b637

java.lang.StackOverflowError
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    # 100500 lines skipped
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.lambda$hashCode$26(FuncCtx.java:215)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.hashCode(FuncCtx.java:215)
    at java.util.HashMap.hash(HashMap.java:338)
    at java.util.HashMap.containsKey(HashMap.java:595)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.takeFromCache(SearchContext.java:96)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:163)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.lambda$null$35(ArrCtorRes.java:147)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.lambda$null$40(ArrCtorRes.java:147)
    at org.klesun.lang.Opt.thn(Opt.java:89)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.lambda$resolve$41(ArrCtorRes.java:143)
    at org.klesun.lang.L.lambda$fch$6(L.java:174)
    at org.klesun.lang.L.fch(L.java:181)
    at org.klesun.lang.L.fch(L.java:174)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.resolve(ArrCtorRes.java:141)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$null$3(DeepTypeResolver.java:30)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$4(DeepTypeResolver.java:30)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:170)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.ClosRes.lambda$null$2(ClosRes.java:63)
    at org.klesun.lang.It.lambda$map$3(It.java:107)
    at org.klesun.lang.It.lambda$map$4(It.java:127)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.resolvers.ClosRes.getReturnedValue(ClosRes.java:61)
    at org.klesun.deep_assoc_completion.resolvers.MethCallRes.lambda$null$29(MethCallRes.java:137)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.resolvers.MethCallRes.lambda$findMethRetType$30(MethCallRes.java:136)
    at org.klesun.deep_assoc_completion.resolvers.MethCallRes.lambda$resolveCall$54(MethCallRes.java:202)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.lang.It.arr(It.java:242)
    at org.klesun.deep_assoc_completion.resolvers.MethCallRes.resolveCall(MethCallRes.java:204)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$null$7(DeepTypeResolver.java:34)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$8(DeepTypeResolver.java:34)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:170)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:84)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKeySt$8(Mt.java:104)
    at org.klesun.lang.Tls.ife(Tls.java:199)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKeySt(Mt.java:97)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getKey$12(Mt.java:120)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
    at org.klesun.lang.L.fap(L.java:122)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:57)
    at org.klesun.lang.L.any(L.java:137)
    at org.klesun.lang.It$2.hasNext(It.java:57)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:28)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.L.fap(L.java:129)
klesun commented 6 years ago

Another exception below, happens here:

$faRecs = $this->getCurrentPnr()->getParsedData()['parsed']['tickets'] ?? [];
$faRecs[''];

Note that everything works ok here: (when you ask for completion of the element keys, not array keys)

$faRecs = $this->getCurrentPnr()->getParsedData()['parsed']['tickets'] ?? [];
$faRecs[0][''];
java.util.NoSuchElementException: Tried to re-use disposed iterator
    at org.klesun.lang.It.dispose(It.java:85)
    at org.klesun.lang.It.iterator(It.java:271)
    at org.klesun.lang.It.getIterator(It.java:77)
    at org.klesun.lang.It.dispose(It.java:87)
    at org.klesun.lang.It.disposeStream(It.java:96)
    at org.klesun.lang.It.flt(It.java:157)
    at org.klesun.lang.It.unq(It.java:198)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.addCompletions(DeepKeysPvdr.java:176)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:141)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:89)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:118)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:815)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:800)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$null$2(CodeCompletionHandlerBase.java:266)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
    at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:181)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$doComplete$3(CodeCompletionHandlerBase.java:263)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$null$0(CompletionThreading.java:108)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
klesun commented 6 years ago

Another one:

$ticketInfo = (new GalileoRetrieveTicketsAction())->execute();
foreach ($ticketInfo['tickets'] as $ticket) {
    $ticket[''];
java.util.NoSuchElementException: Tried to re-use disposed iterator
    at org.klesun.lang.It.dispose(It.java:85)
    at org.klesun.lang.It.iterator(It.java:271)
    at org.klesun.lang.It.getIterator(It.java:77)
    at org.klesun.lang.It.dispose(It.java:87)
    at org.klesun.lang.It.disposeStream(It.java:96)
    at org.klesun.lang.It.flt(It.java:157)
    at org.klesun.lang.It.unq(It.java:198)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.addCompletions(DeepKeysPvdr.java:176)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:141)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:89)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:118)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:815)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:800)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$null$2(CodeCompletionHandlerBase.java:266)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
    at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:181)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$doComplete$3(CodeCompletionHandlerBase.java:263)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$null$0(CompletionThreading.java:108)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
klesun commented 6 years ago

Exceptions above are resolved

klesun commented 6 years ago

New problem:

$lfParsed = LinearFareParser::parse($lfOutput);
if (!empty($lfParsed[''])) {

java.util.NoSuchElementException: Tried to re-use disposed iterator
    at org.klesun.lang.It.dispose(It.java:88)
    at org.klesun.lang.It.iterator(It.java:289)
    at org.klesun.lang.It.getIterator(It.java:80)
    at org.klesun.lang.It.dispose(It.java:95)
    at org.klesun.lang.It.disposeStream(It.java:104)
    at org.klesun.lang.It.flt(It.java:165)
    at org.klesun.lang.It.unq(It.java:216)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at org.klesun.lang.It.arr(It.java:261)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.lambda$null$35(ArrCtorRes.java:145)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.DeepType$Key.lambda$getTypes$0(DeepType.java:138)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.getStringValueSt(Mt.java:63)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:99)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$0(AssRes.java:41)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.DeepType$Key.lambda$getTypes$0(DeepType.java:138)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.getStringValueSt(Mt.java:63)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:99)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$findPsiExprType$0(MiscRes.java:29)
    at org.klesun.lang.Opt.lambda$fap$4(Opt.java:73)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.lang.Opt.fap(Opt.java:73)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.findPsiExprType(MiscRes.java:29)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:97)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$makeType$3(AssRes.java:44)
    at org.klesun.deep_assoc_completion.DeepType.lambda$getListElemTypes$1(DeepType.java:98)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It.has(It.java:255)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getBriefValueText$27(Mt.java:195)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.deep_assoc_completion.helpers.Mt.getBriefValueText(Mt.java:195)
    at org.klesun.deep_assoc_completion.helpers.Mt.getBriefValueText(Mt.java:213)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.makeFullLookup(DeepKeysPvdr.java:141)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.lambda$addCompletions$15(DeepKeysPvdr.java:211)
    at org.klesun.lang.Dict.lambda$map$2(Dict.java:30)
    at org.klesun.lang.Dict.lambda$map$1(Dict.java:27)
    at org.klesun.lang.L.lambda$map$1(L.java:68)
    at org.klesun.lang.L.map(L.java:76)
    at org.klesun.lang.L.map(L.java:68)
    at org.klesun.lang.Dict.map(Dict.java:27)
    at org.klesun.lang.Dict.map(Dict.java:30)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.addCompletions(DeepKeysPvdr.java:211)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:141)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:89)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:118)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:815)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:800)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$null$2(CodeCompletionHandlerBase.java:266)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
    at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:181)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$doComplete$3(CodeCompletionHandlerBase.java:263)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$null$0(CompletionThreading.java:108)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
klesun commented 6 years ago

Another one:

public function execute(ApolloPnr $pnr, int $absPaxNum): Result
{
    $nameNumber = $pnr->getPassengers()[$absPaxNum - 1]['nameNumber'];
    return $this->getStoredPricing($pnr)
        ->flatMap(function($fareQuoteInfo) use ($pnr) {
            return static::wrapExc(function(){}, [$fareQuoteInfo['']]);

java.util.NoSuchElementException: Tried to re-use disposed iterator
    at org.klesun.lang.It.dispose(It.java:88)
    at org.klesun.lang.It.iterator(It.java:289)
    at org.klesun.lang.It.getIterator(It.java:80)
    at org.klesun.lang.It.dispose(It.java:95)
    at org.klesun.lang.It.disposeStream(It.java:104)
    at org.klesun.lang.It.flt(It.java:165)
    at org.klesun.lang.It.unq(It.java:216)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getInArraySt$0(Mt.java:49)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$null$7(Mt.java:104)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at org.klesun.lang.It.arr(It.java:261)
    at org.klesun.deep_assoc_completion.helpers.Mt.getKey(Mt.java:120)
    at org.klesun.deep_assoc_completion.helpers.Mt.getEl(Mt.java:91)
    at org.klesun.deep_assoc_completion.resolvers.VarRes.lambda$null$19(VarRes.java:108)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.ArrCtorRes.lambda$null$35(ArrCtorRes.java:145)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.DeepType$Key.lambda$getTypes$0(DeepType.java:138)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.getStringValueSt(Mt.java:63)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:99)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$0(AssRes.java:41)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.DeepType$Key.lambda$getTypes$0(DeepType.java:138)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.util.Iterator.forEachRemaining(Iterator.java:115)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at java.lang.Iterable.forEach(Iterable.java:74)
    at org.klesun.lang.Lang.L(Lang.java:164)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.<init>(Mt.java:43)
    at org.klesun.lang.It.wap(It.java:246)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$assignmentsToTypes$5(AssRes.java:54)
    at org.klesun.lang.It.lambda$fap$7(It.java:205)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It$2.lambda$hasNext$0(It.java:60)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.lang.It$2.hasNext(It.java:60)
    at org.klesun.lang.MemoizingIterable$1.hasNext(MemoizingIterable.java:38)
    at org.klesun.deep_assoc_completion.helpers.Mt.getStringValueSt(Mt.java:63)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:99)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$findPsiExprType$0(MiscRes.java:29)
    at org.klesun.lang.Opt.lambda$fap$4(Opt.java:73)
    at org.klesun.lang.Opt.uni(Opt.java:137)
    at org.klesun.lang.Opt.fap(Opt.java:73)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.findPsiExprType(MiscRes.java:29)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$30(MiscRes.java:97)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$null$31(MiscRes.java:96)
    at org.klesun.lang.Opt.map(Opt.java:45)
    at org.klesun.lang.Opt.fop(Opt.java:59)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.lambda$resolve$32(MiscRes.java:94)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.resolvers.MiscRes.resolve(MiscRes.java:55)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.lambda$resolveIn$39(DeepTypeResolver.java:77)
    at org.klesun.lang.Opt.fst(Opt.java:146)
    at org.klesun.deep_assoc_completion.DeepTypeResolver.resolveIn(DeepTypeResolver.java:25)
    at org.klesun.deep_assoc_completion.helpers.SearchContext.findExprType(SearchContext.java:177)
    at org.klesun.deep_assoc_completion.helpers.FuncCtx.findExprType(FuncCtx.java:127)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$null$9(AssRes.java:88)
    at org.klesun.lang.Tls.lambda$onDemand$1(Tls.java:157)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.makeType(AssRes.java:33)
    at org.klesun.deep_assoc_completion.resolvers.var_res.AssRes.lambda$makeType$3(AssRes.java:44)
    at org.klesun.deep_assoc_completion.DeepType.lambda$getListElemTypes$1(DeepType.java:98)
    at org.klesun.lang.L.lambda$fap$4(L.java:122)
    at org.klesun.lang.It.lambda$fap$5(It.java:198)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.klesun.lang.It.has(It.java:255)
    at org.klesun.deep_assoc_completion.helpers.Mt.lambda$getBriefValueText$27(Mt.java:195)
    at org.klesun.lang.L.any(L.java:133)
    at org.klesun.deep_assoc_completion.helpers.Mt.getBriefValueText(Mt.java:195)
    at org.klesun.deep_assoc_completion.helpers.Mt.getBriefValueText(Mt.java:213)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.makeFullLookup(DeepKeysPvdr.java:141)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.lambda$addCompletions$15(DeepKeysPvdr.java:211)
    at org.klesun.lang.Dict.lambda$map$2(Dict.java:30)
    at org.klesun.lang.Dict.lambda$map$1(Dict.java:27)
    at org.klesun.lang.L.lambda$map$1(L.java:68)
    at org.klesun.lang.L.map(L.java:76)
    at org.klesun.lang.L.map(L.java:68)
    at org.klesun.lang.Dict.map(Dict.java:27)
    at org.klesun.lang.Dict.map(Dict.java:30)
    at org.klesun.deep_assoc_completion.completion_providers.DeepKeysPvdr.addCompletions(DeepKeysPvdr.java:211)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:141)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:89)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:118)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:815)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:800)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$null$2(CodeCompletionHandlerBase.java:266)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
    at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:181)
    at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$doComplete$3(CodeCompletionHandlerBase.java:263)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$null$0(CompletionThreading.java:108)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
klesun commented 6 years ago

exceptions above fixed: https://github.com/klesun/deep-assoc-completion/commit/44179357db2a332538ba2c8c7df828ff027bfb3c

klesun commented 6 years ago

Weird completion: image Caused by key assignment in foreach. Could it be some problems with didSurelyHappen logic in VarRes?

This is caused by depth limit being virtually ignored. Key resolution gets in a recursive loop. Should create a context for each expression to deal with that as described above... Or maybe store depth limit in FuncCtx, but not sure.

klesun commented 6 years ago

image Insufficient keys returned from call to a function that does Result::flatMap. There should be quoteNumber, pricingList and pricingModifiers. Possibly iterator gets disposed somewhere in MethCallRes, though I don't get any exceptions in IDE. Could also possibly be call stack length limit of 9 functions.

klesun commented 6 years ago

https://github.com/klesun/deep-assoc-completion/commit/0ad770ce022f01e72212301dd0fad19369f38666 brings the feature, each option is now displayed the moment it was calculated instead of waiting for complete resolution.

But it hangs for some reason in the Laravel project on this:

$battle->competitors->first()->rounds_won;

Possibly because one of places where arr() is called gets triggered. In array_combine or array_flip for example.

klesun commented 6 years ago

Another problem:

$retrievalResult = static::combineLinkedFields($retrievalResult);
$retrievalResult['reservation'][''];

If you ask for completion here it takes about a second instead of 10 ms. Possibly something triggers the full type resolution like array_combine

It happens because plugin spends a lot of time determining the string value of $i in $result['segments'][$i] = ... whereas $i is defined as $i = $result['svcSegments']['segmentNumber']. Key resolution in an assignment should be made on-demand. It probably would also be good to remove the .arr() from KeyType.java

Upd.: fix here - 535f1a433dae3228474bce4fec27974e8a7e524c

klesun-misc commented 5 years ago

Looks like used key completion stopped working after recent changes... image

image But it does work sometimes though: image

klesun commented 5 years ago

Lol it suggested only the options that are already present in array instead of all but the present https://github.com/klesun/deep-assoc-completion/commit/cb4ac422a6a7287e5c974e77787090a40a4dab38

klesun commented 5 years ago

I guess this can be counted for done. I don't work in RBS anymore so I can't test complex nested array constructions anymore.