usethesource / rascal

The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)
http://www.rascal-mpl.org
Other
394 stars 77 forks source link

strange type-checker crash on constructor that has been added a new parameter #1939

Open jurgenvinju opened 1 month ago

jurgenvinju commented 1 month ago

Describe the bug

I will check this again when we have bootstrapped the new checker. This is with version 0.7.8 of rascal-core.

In JavaToObjectFlow line 271 and down we used a constructor without the list[Declaration] typeParameters after the Type t type. This triggered the following exception in the checker:

Error: [ERROR] |lib://rascal-core/lang/rascalcore/check/ATypeUtils.rsc|(48050,2,<1113,112>,<1113,114>): |lib://rascal-core/lang/rascalcore/check/ATypeUtils.rsc|:1113,112: rascalCheckerInternalError("Cannot get function arguments from non-function type, got Expression::newObject(Type type, list[Declaration] typeParameters, list[Expression] args, Declaration class)")
Error: [ERROR]  at getFunctionArgumentTypes(|lib://rascal-core/lang/rascalcore/check/ATypeUtils.rsc|(47784,272,<1110,0>,<1114,1>))
    at reportCallError(|lib://rascal-core/lang/rascalcore/check/CollectExpression.rsc|(28938,187,<656,14>,<657,106>))
    at Anonymous Function(|lib://rascal-core/lang/rascalcore/check/CollectExpression.rsc|(26540,67,<617,24>,<617,91>))
    at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(14697,34,<451,29>,<451,63>))
    at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(12463,124,<387,12>,<391,13>))
    at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(9448,25,<303,12>,<303,37>))
    at addFact(|lib://typepal/analysis/typepal/Solver.rsc|(10656,15,<341,8>,<341,23>))
    at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(9984,114,<318,19>,<318,133>))
    at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(14790,17,<453,16>,<453,33>))
    at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(12463,124,<387,12>,<391,13>))
    at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(9448,25,<303,12>,<303,37>))
    at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(14790,17,<453,16>,<453,33>))
    at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(12463,124,<387,12>,<391,13>))
    at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(9448,25,<303,12>,<303,37>))
    at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(14790,17,<453,16>,<453,33>))
    at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(12463,124,<387,12>,<391,13>))
    at _run(|lib://typepal/analysis/typepal/Solver.rsc|(49421,25,<1363,16>,<1363,41>))
    at rascalTModelComponent(|lib://rascal-core/lang/rascalcore/check/Checker.rsc|(18925,8,<451,13>,<451,21>))
    at rascalTModelForLocs(|lib://rascal-core/lang/rascalcore/check/Checker.rsc|(11230,53,<287,27>,<287,80>))
    at check(|lib://rascal-core/lang/rascalcore/check/Checker.rsc|(20[528](https://github.com/usethesource/rascal/actions/runs/9005978234/job/24742611581#step:8:529),64,<494,9>,<494,73>))
    at ***MVN Rascal Compiler***(|main://***MVN%20Rascal%20Compiler***|)