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
399 stars 78 forks source link

Typechecker fails on `analysis::typepal::TypePal` #2006

Open toinehartman opened 1 month ago

toinehartman commented 1 month ago
  1. Open the typepal workspace
  2. Make sure to remove the target folder
  3. Open src/analysis/typepal/TypePal.rsc.
  4. Save the file (ctrl+S)

The type checker will start checking several modules. It errors because it cannot find the TPL for analysis::typepal::Solver. This is a module that analysis::typepal::TypePal extends.

After manualy opening and saving analysis::typepal::Solver (which generates a TPL), typechecking analysis::typepal::TypePal works like expected.

13:42:37.655 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - pathConfig(
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   ignores=[],
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   resources=|target://typepal|,
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   javaCompilerPath=[],
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   bin=|target://typepal|,
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   classloaders=[],
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   libs=[|lib://rascal|],
13:42:37.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler -   srcs=[|file:///c:/Users/toine/swat/projects/Rascal/typepal/src|])
13:42:43.186 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::FailMessage
13:42:46.387 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::FailMessage in 734 ms
13:42:47.434 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::FailMessage in 156 ms
13:42:47.445 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::Exception
13:42:50.059 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::Exception in 812 ms
13:42:50.474 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::Exception in 15 ms
13:42:50.488 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::GetLoc
13:43:04.526 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::GetLoc in 3500 ms
13:43:07.368 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::GetLoc in 78 ms
13:43:07.370 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::Version
13:43:07.531 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::Version in 31 ms
13:43:07.569 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::Version in 0 ms
13:43:07.570 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::TModel
13:43:10.642 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::TModel in 468 ms
13:43:11.528 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::TModel in 0 ms
13:43:11.532 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::AType
13:43:17.108 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::AType in 984 ms
13:43:18.050 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::AType in 234 ms
13:43:18.051 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::Messenger
13:43:31.824 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::Messenger in 4562 ms
13:43:35.719 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::Messenger in 421 ms
13:43:35.721 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::ISolver
13:43:46.954 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::ISolver in 3156 ms
13:43:50.090 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::ISolver in 78 ms
13:43:50.092 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::ConfigurableScopeGraph
13:44:11.065 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::ConfigurableScopeGraph in 3796 ms
13:44:20.494 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::ConfigurableScopeGraph in 593 ms
13:44:20.498 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::ICollector
13:44:42.893 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::ICollector in 3437 ms
13:44:51.361 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::ICollector in 187 ms
13:44:51.656 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::Collector
13:46:03.792 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::Collector in 10531 ms
13:46:11.036 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Saved TPL .. analysis::typepal::Collector in 343 ms
13:46:11.049 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checking ... analysis::typepal::TypePal
13:46:26.941 [pool-5-thread-9] INFO  Evaluator: Rascal compiler - Checked .... analysis::typepal::TypePal in 3140 ms
13:46:29.810 [pool-5-thread-9] ERROR org.rascalmpl.vscode.lsp.util.EvaluatorUtil - Internal error during Rascal check
|lib://rascal-core/lang/rascalcore/check/ADTandGrammar.rsc|(7225,12,<151,52>,<151,64>): |lib://rascal-core/lang/rascalcore/check/ADTandGrammar.rsc|:151,52: "addGrammar: tmodel for analysis::typepal::Solver not found"
    at addGrammar(|lib://rascal-core/lang/rascalcore/check/ADTandGrammar.rsc|(7171,85,<150,27>,<152,17>))
    at prepareForCompilation(|lib://rascal-core/lang/rascalcore/check/Import.rsc|(11104,61,<269,19>,<269,80>))
    at rascalTModelForLocs(|lib://rascal-core/lang/rascalcore/check/Checker.rsc|(16477,77,<385,38>,<385,115>))
    at check(|lib://rascal-core/lang/rascalcore/check/Checker.rsc|(22694,64,<545,9>,<545,73>))
    at $shell$(|main://$shell$|)
toinehartman commented 1 month ago

Adding import analysis::typepal::Solver; works around this. I suspect that extended modules might not correctly be taken into account when determining dependencies of the current module.