fuzion icon indicating copy to clipboard operation
fuzion copied to clipboard

Call to inherited type feature declared in nested feature results in precondition failure

Open fridis opened this issue 1 year ago • 0 comments

This currently fails in #3157: This example

a is
  b is
    type.hi =>

x : a.b is

x.type.hi

crashes if preconditions are enabled:

 > PRECONDITIONS=true POSTCONDITIONS=true ./build/bin/fz test_it.fz 

error 1: java.lang.Error: require-condition1 failed: Clazzes.java:1045 "(Errors.any() || !thiz.dependsOnGenerics(), outerClazz != null || thiz.feature().outer() == null, Errors.any() || thiz == Types.t_ERROR || outerClazz == null || outerClazz.feature().inheritsFrom(thiz.feature().outer()));"
	at dev.flang.util.ANY.require(ANY.java:133)
	at dev.flang.air.Clazzes.clazzWithSpecificOuter(Clazzes.java:1045)
	at dev.flang.air.Clazz.lookup(Clazz.java:1324)
	at dev.flang.air.Clazzes.findClazzes(Clazzes.java:732)
	at dev.flang.air.Clazz$EV.action(Clazz.java:132)
	at dev.flang.ast.Expr.visitExpressions(Expr.java:338)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:99)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractFeature.visitExpressions(AbstractFeature.java:1532)
	at dev.flang.air.Clazz.inspectCode(Clazz.java:1517)
	at dev.flang.air.Clazz.findAllClasses(Clazz.java:1562)
	at dev.flang.air.Clazzes.findAllClasses(Clazzes.java:408)
	at dev.flang.fuir.FUIR.<init>(FUIR.java:224)
	at dev.flang.opt.Optimizer.fuir(Optimizer.java:73)
	at dev.flang.tools.Fuzion$Backend.processFrontEnd(Fuzion.java:506)
	at dev.flang.tools.Fuzion.lambda$parseArgsForBackend$3(Fuzion.java:1071)
	at dev.flang.tools.Tool.lambda$run$0(Tool.java:141)
	at dev.flang.util.Errors.runAndExit(Errors.java:964)
	at dev.flang.tools.Tool.run(Tool.java:141)
	at dev.flang.tools.Fuzion.main(Fuzion.java:626)


*** fatal errors encountered, stopping.
one error.

fridis avatar May 29 '24 16:05 fridis