Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
klesun opened this issue Sep 13, 2018 · 16 comments
Closed

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

klesun opened this issue Sep 13, 2018 · 16 comments
Assignees
Labels
type: performance this merge request is about optimization

Comments

@klesun
Copy link
Owner

klesun commented Sep 13, 2018

Should help with the #43

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

@klesun klesun added status: actually not closed type: performance this merge request is about optimization labels Sep 13, 2018
@klesun klesun self-assigned this Sep 13, 2018
@klesun klesun closed this as completed Sep 13, 2018
@klesun
Copy link
Owner Author

klesun commented Sep 13, 2018

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
Copy link
Owner Author

klesun commented Sep 13, 2018

Rest things in the TODO list:

  • Change nested types (keys, numeric index elements, etc...) in the DeepType class to iterators.
  • Get rid of L class usages where it can be replaced with an iterator.
  • Get rid of It::arr() and L::itr() usages.
  • Make all L map/filter/flatMap/etc... functions return iterator.

@klesun
Copy link
Owner Author

klesun commented Sep 17, 2018

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 6ce1bb3

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
Copy link
Owner Author

klesun commented Sep 17, 2018

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
Copy link
Owner Author

klesun commented Sep 17, 2018

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
Copy link
Owner Author

klesun commented Sep 18, 2018

Exceptions above are resolved

@klesun
Copy link
Owner Author

klesun commented Sep 18, 2018

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
Copy link
Owner Author

klesun commented Sep 18, 2018

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
Copy link
Owner Author

klesun commented Sep 18, 2018

exceptions above fixed: 4417935

@klesun
Copy link
Owner Author

klesun commented Sep 19, 2018

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
Copy link
Owner Author

klesun commented Sep 20, 2018

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.

Repository owner deleted a comment from klesun-misc Oct 3, 2018
Repository owner deleted a comment from klesun-misc Oct 3, 2018
Repository owner deleted a comment from klesun-misc Oct 3, 2018
@klesun
Copy link
Owner Author

klesun commented Oct 4, 2018

0ad770c 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
Copy link
Owner Author

klesun commented Oct 4, 2018

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 - 535f1a4

@klesun-misc
Copy link

klesun-misc commented Oct 17, 2018

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

image
But it does work sometimes though:
image

@klesun
Copy link
Owner Author

klesun commented Oct 17, 2018

Lol it suggested only the options that are already present in array instead of all but the present
cb4ac42

@klesun
Copy link
Owner Author

klesun commented Oct 31, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: performance this merge request is about optimization
Projects
None yet
Development

No branches or pull requests

2 participants