fuzion icon indicating copy to clipboard operation
fuzion copied to clipboard

java.lang.Error: require-condition1 failed: Call.java:1165 "(Errors.any() || calledFeatureKnown() || _pendingError != null);"

Open simonvonhackewitz opened this issue 3 months ago • 1 comments

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.

simonvonhackewitz avatar Sep 16 '25 14:09 simonvonhackewitz

What causes this is the missing argument type in scheme, adding it avoids the failed require condition:

scheme(ls Sequence String) is

simonvonhackewitz avatar Sep 19 '25 13:09 simonvonhackewitz