fuzion
fuzion copied to clipboard
java.lang.Error: require-condition1 failed: Call.java:1165 "(Errors.any() || calledFeatureKnown() || _pendingError != null);"
Modified but still broken AoC solution 2023/03/dec3_part1.fz causes this error
dec3_part1 is
codepoint.is_symbol => !is_ascii_digit && (codepoint val) != "."
lines =>
LM : mutate is
o := LM ! ()->(io.stdin.reader LM) ! ()->
for
li Sequence String := [], li ++ [l]
l := io.buffered LM .read_line ? str String => str | * => ""
while l != "" else
li
o.as_array
scheme(ls) is
cp := ls.map x->x.as_codepoints
a := array2 cp.count cp[0].count i,j->cp[i][j]
w => a.length1
h => a.length0
at(l,c i32) =>
if 0 <= l < h && 0 <= c < w then a[l,c] else "."
number(l, c i32) is
len := (0.. .map (x -> !(at l c+x).is_ascii_digit)).first
ok bool := (-1..1) ∃ y -> (-1..len) ∃ x -> (at l+y c+x) .is_symbol
val i32 := ls[l].substring c c+len
.parse_i32.val
numbers =>
a.index_pairs.flat_map number ij->
i,j := ij
(!(at i j-1).is_ascii_digit &&
(at i j ).is_ascii_digit ).as_option number (number i j)
parts =>
numbers.map (x -> if x.ok then x.val else 0)
.fold i32.type.sum
s := scheme lines
p := s.parts
say "$p"
❯ fz 2023/03/dec3_part1.fz
error 1: java.lang.Error: require-condition1 failed: Call.java:1165 "(Errors.any() || calledFeatureKnown() || _pendingError != null);"
at dev.flang.util.ANY.require(ANY.java:141)
at dev.flang.ast.Call.calledFeature(Call.java:1165)
at dev.flang.ast.AbstractType.lambda$isFunctionType$4(AbstractType.java:1466)
at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632)
at dev.flang.ast.AbstractType.isFunctionType(AbstractType.java:1466)
at dev.flang.ast.AbstractType.isFunctionTypeExcludingLazy(AbstractType.java:1450)
at dev.flang.ast.ParsedCall.isImmediateFunctionCall(ParsedCall.java:749)
at dev.flang.ast.ParsedCall.resolveImmediateFunctionCall(ParsedCall.java:733)
at dev.flang.ast.Call.resolveTypesSuccessResult(Call.java:2638)
at dev.flang.ast.Call.resolveTypes0(Call.java:2580)
at dev.flang.ast.Call.resolveTypes(Call.java:2526)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1539)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1529)
at dev.flang.ast.Call.visit(Call.java:1270)
at dev.flang.ast.Call.visit(Call.java:1267)
at dev.flang.ast.Match.visit(Match.java:127)
at dev.flang.ast.Match$4.visit(Match.java:475)
at dev.flang.ast.Block.visit(Block.java:213)
at dev.flang.ast.Block.visit(Block.java:43)
at dev.flang.ast.Impl.visit(Impl.java:302)
at dev.flang.ast.Feature.visit(Feature.java:1323)
at dev.flang.ast.Feature.internalResolveTypes(Feature.java:1627)
at dev.flang.ast.Resolution.resolveTypes(Resolution.java:505)
at dev.flang.ast.Function.propagateTypeAndInferResult(Function.java:374)
at dev.flang.ast.AbstractLambda.inferLambdaResultType(AbstractLambda.java:77)
at dev.flang.ast.Call.lambda$inferGenericLambdaResult$27(Call.java:2333)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at dev.flang.ast.Call.inferGenericLambdaResult(Call.java:2322)
at dev.flang.ast.Call.inferGenericLambdaResult(Call.java:2293)
at dev.flang.ast.Call.inferGenericsFromArgs(Call.java:1967)
at dev.flang.ast.Call.inferGenericsFromArgs(Call.java:1676)
at dev.flang.ast.Call.resolveTypes0(Call.java:2566)
at dev.flang.ast.Call.resolveTypes(Call.java:2526)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1539)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1529)
at dev.flang.ast.Call.visit(Call.java:1270)
at dev.flang.ast.Call.visit(Call.java:1267)
at dev.flang.ast.Block.visit(Block.java:213)
at dev.flang.ast.Block.visit(Block.java:43)
at dev.flang.ast.Impl.visit(Impl.java:302)
at dev.flang.ast.Feature.visit(Feature.java:1323)
at dev.flang.ast.Feature.internalResolveTypes(Feature.java:1627)
at dev.flang.ast.Resolution.resolveTypes(Resolution.java:505)
at dev.flang.ast.Feature.resultTypeIfPresentUrgent(Feature.java:2455)
at dev.flang.ast.Call.getActualResultType(Call.java:1401)
at dev.flang.ast.Call.setActualResultType(Call.java:2689)
at dev.flang.ast.Call.resolveTypes0(Call.java:2573)
at dev.flang.ast.Call.resolveTypes(Call.java:2526)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1539)
at dev.flang.ast.Feature$ResolveTypes.action(Feature.java:1529)
at dev.flang.ast.Call.visit(Call.java:1270)
at dev.flang.ast.Impl.visitExpr(Impl.java:326)
at dev.flang.ast.Feature.visit(Feature.java:2317)
at dev.flang.ast.Block.visit(Block.java:213)
at dev.flang.ast.Block.visit(Block.java:43)
at dev.flang.ast.Impl.visit(Impl.java:302)
at dev.flang.ast.Feature.visit(Feature.java:1323)
at dev.flang.ast.Feature.internalResolveTypes(Feature.java:1627)
at dev.flang.ast.Resolution.resolveOne(Resolution.java:414)
at dev.flang.ast.Resolution.resolve(Resolution.java:377)
at dev.flang.fe.SourceModule.createASTandResolve(SourceModule.java:259)
at dev.flang.fe.FrontEnd.<init>(FrontEnd.java:167)
at dev.flang.tools.Fuzion.lambda$parseArgsForBackend$4(Fuzion.java:1141)
at dev.flang.tools.Tool.lambda$run$0(Tool.java:142)
at dev.flang.util.Errors.runAndExit(Errors.java:912)
at dev.flang.tools.Tool.run(Tool.java:142)
at dev.flang.tools.Fuzion.main(Fuzion.java:694)
*** fatal errors encountered, stopping.
one error.
What causes this is the missing argument type in scheme, adding it avoids the failed require condition:
scheme(ls Sequence String) is