fuzion
fuzion copied to clipboard
Ignoring `this` result type in type feature results in check failure
Use this code
e is
type.p e.this => do
type.b unit =>
p
unit
to get
> PRECONDITIONS=true POSTCONDITIONS=true ./build/bin/fz test_e.fz
error 1: java.lang.Error: check-condition failed: ResolvedParametricType.java:122 "(Errors.any());"
at dev.flang.util.ANY.check(ANY.java:440)
at dev.flang.ast.ResolvedParametricType.feature(ResolvedParametricType.java:122)
at dev.flang.ast.AstErrors.unusedResult(AstErrors.java:2203)
at dev.flang.ast.Block.lambda$checkTypes$0(Block.java:413)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.SliceOps$1$1.accept(SliceOps.java:200)
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.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at dev.flang.ast.Block.checkTypes(Block.java:406)
at dev.flang.ast.Feature$7.actionBefore(Feature.java:1941)
at dev.flang.ast.Block.visit(Block.java:206)
at dev.flang.ast.Block.visit(Block.java:41)
at dev.flang.ast.Impl.visit(Impl.java:301)
at dev.flang.ast.Feature.visit(Feature.java:1126)
at dev.flang.ast.Feature.checkTypes1and2(Feature.java:1930)
at dev.flang.ast.Resolution.resolveOne(Resolution.java:473)
at dev.flang.ast.Resolution.resolve(Resolution.java:409)
at dev.flang.fe.SourceModule.createASTandResolve(SourceModule.java:274)
at dev.flang.fe.FrontEnd.<init>(FrontEnd.java:195)
at dev.flang.tools.Fuzion.lambda$parseArgsForBackend$4(Fuzion.java:1068)
at dev.flang.tools.Tool.lambda$run$0(Tool.java:142)
at dev.flang.util.Errors.runAndExit(Errors.java:895)
at dev.flang.tools.Tool.run(Tool.java:142)
at dev.flang.tools.Fuzion.main(Fuzion.java:626)
*** fatal errors encountered, stopping.
one error.
Not using checks, we see **error** in the error output:
> ./build/bin/fz test_e.fz
/home/fridi/fuzion/work/test_e.fz:6:5: error 1: Expression produces result of type 'e.this.type (in type feature)' but result is not used.
p
To solve this, use the result, explicitly ignore the result '_ := <expression>' or change **error** from constructor to routine by replacing'is' by '=>'.
one error.