«Тип шаблона не может быть вычислен» при итерации по псевдониму rel [loc, str, int, int] - PullRequest
0 голосов
/ 27 января 2019

У меня есть rel[loc, str, int, int], который я назвал псевдонимом ECCModel

. Итерирование по нему в функции приводит к ошибке «Тип шаблона не может быть вычислен», когда элементы шаблона называются * 1005.*.При именовании чего-либо, кроме location, ошибки исчезают.Является ли «местоположение» зарезервированным словом в мошеннике?Независимо от ошибок, он скомпилируется и будет работать нормально.

Ошибка может быть вызвана следующим методом

alias ECCModel = rel[loc, str, int, int]
map[str,int] Foo(ECCModel bar)
{
    return (y : z | <location, y, z, _> <- bar);
}

Это ожидаемое поведение?

1 Ответ

0 голосов
/ 27 января 2019

Это не ожидаемое поведение, и location не является зарезервированным словом, но loc является.Я думаю, что это глюк текущего компилятора.Для вашего пояснения: в настоящее время у нас есть три реализации Rascal:

  • Интерпретатор Rascal.
  • Текущий (также его иногда называют "старый") компилятор.
  • Новый компилятор, над которым мы работаем, еще не выпущен.

Ваш пример отлично работает с интерпретатором и новым компилятором.Таким образом, проблема, о которой вы сообщаете, со временем исчезнет.

...