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

webserver.fz hits unjustified? require-condition #3909

Open
maxteufel opened this issue Oct 8, 2024 · 0 comments
Open

webserver.fz hits unjustified? require-condition #3909

maxteufel opened this issue Oct 8, 2024 · 0 comments
Labels
bug Something isn't working middle end related to the Middle End that creates Fuzion Application from Fuzion Modules

Comments

@maxteufel
Copy link
Collaborator

applying this patch to the flangdev webserver:

diff --git a/src/webserver/route_request.fz b/src/webserver/route_request.fz
index ad6e6e0e..0255ab02 100644
--- a/src/webserver/route_request.fz
+++ b/src/webserver/route_request.fz
@@ -40,10 +40,10 @@ do_register (client Java.java.net.InetAddress, form_data lock_free.map String St
   if has_registered_recently client
     "<div class='text-center'>Only one registration per IP possible within 10 minutes.</div>"
   else
-    registration_result := jflang.User_static.register (fuzion_to_java_map form_data)
+    registration_result := user.register form_data
     # NYI: registration rate limit
     match registration_result
-      rr Java.java.lang.__jString => rr.as_string
+      rr String => rr
       e error => "<div class='text-center'>*** Registration failed: {e}</div>"

causes the following require-condition failure

error 1: java.lang.Error: require-condition2 failed: Clazzes.java:280 "(Errors.any() || !actualType.dependsOnGenericsExceptTHIS_TYPE(), Errors.any() || !actualType.containsThisType(), Errors.any() || outer == null || outer._type != Types.t_UNDEFINED, outer != null || actualType.feature().outer() == null, Errors.any() || actualType == Types.t_ERROR || outer == null || outer.feature().inheritsFrom(actualType.feature().outer()) || (outer.feature().isTypeFeature() /* NYI: REMOVE: workaround for #3160 */));"
	at dev.flang.util.ANY.require(ANY.java:180)
	at dev.flang.air.Clazzes.create(Clazzes.java:280)
	at dev.flang.air.Clazzes.create(Clazzes.java:256)
	at dev.flang.air.Clazzes.clazz(Clazzes.java:1104)
	at dev.flang.air.Clazzes.clazz(Clazzes.java:1101)
	at dev.flang.air.Clazz.directParents(Clazz.java:618)
	at dev.flang.air.Clazz.parents(Clazz.java:639)
	at dev.flang.air.Clazz.registerAsHeir(Clazz.java:577)
	at dev.flang.air.Clazz.registerAsHeir(Clazz.java:567)
	at dev.flang.air.Clazzes.create(Clazzes.java:408)
	at dev.flang.air.Clazzes.create(Clazzes.java:256)
	at dev.flang.air.Clazz.typeClazz(Clazz.java:2137)
	at dev.flang.air.Clazz.determineResultClazz(Clazz.java:2239)
	at dev.flang.air.Clazz.dependencies(Clazz.java:461)
	at dev.flang.air.Clazzes.create(Clazzes.java:417)
	at dev.flang.air.Clazz.lookup(Clazz.java:1316)
	at dev.flang.air.Clazz.lookup(Clazz.java:1125)
	at dev.flang.air.Clazz.lookup(Clazz.java:1103)
	at dev.flang.air.Clazz.lookupIfInstantiated(Clazz.java:969)
	at dev.flang.air.Clazz.lambda$findAllClasses$3(Clazz.java:1562)
	at dev.flang.air.Clazzes.calledDynamically(Clazzes.java:544)
	at dev.flang.air.Clazzes.findClazzes(Clazzes.java:812)
	at dev.flang.air.Clazz$EV.action(Clazz.java:138)
	at dev.flang.ast.Expr.visitExpressions(Expr.java:330)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:98)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:96)
	at dev.flang.ast.AbstractMatch.visitExpressions(AbstractMatch.java:115)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractMatch.visitExpressions(AbstractMatch.java:115)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:96)
	at dev.flang.ast.AbstractMatch.visitExpressions(AbstractMatch.java:115)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractMatch.visitExpressions(AbstractMatch.java:115)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:96)
	at dev.flang.ast.AbstractMatch.visitExpressions(AbstractMatch.java:115)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractCall.visitExpressions(AbstractCall.java:96)
	at dev.flang.ast.AbstractAssign.visitExpressions(AbstractAssign.java:139)
	at dev.flang.ast.AbstractBlock.visitExpressions(AbstractBlock.java:99)
	at dev.flang.ast.AbstractFeature.visitExpressions(AbstractFeature.java:1629)
	at dev.flang.air.Clazz.inspectCode(Clazz.java:1514)
	at dev.flang.air.Clazz.findAllClasses(Clazz.java:1558)
	at dev.flang.air.Clazzes.findAllClasses(Clazzes.java:469)
	at dev.flang.fuir.AirFUIR.<init>(AirFUIR.java:165)
	at dev.flang.opt.Optimizer.fuir(Optimizer.java:79)
	at dev.flang.tools.Fuzion$Backend.processFrontEnd(Fuzion.java:507)
	at dev.flang.tools.Fuzion.lambda$parseArgsForBackend$4(Fuzion.java:1072)
	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:627)


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

but no (obvious) error when compiling without require-conditions.

(unfortunately no smaller example available for now)

@maxteufel maxteufel added the bug Something isn't working label Oct 8, 2024
@michaellilltokiwa michaellilltokiwa added the middle end related to the Middle End that creates Fuzion Application from Fuzion Modules label Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working middle end related to the Middle End that creates Fuzion Application from Fuzion Modules
Projects
None yet
Development

No branches or pull requests

2 participants