Проблема при разбиении файла F # на несколько файлов - PullRequest
0 голосов
/ 30 августа 2011

Я пытаюсь разделить файл F # на несколько файлов, хотя в данный момент я застрял. Я попытался передать следующие строки из моего исходного Main.fs в Ast.fs. В Ast.fs я положил:

...
type StartPosition = Position
type EndPosition = Position
type TokenPosition = TokenPosition of StartPosition * EndPosition
...

Затем я добавил

open Ast

на мой Main.fs. При попытке собрать я теперь получаю следующую ошибку

This expression was expected to have type     StartPosition    but here has type     Position

свыше sp и ep:

let parse_token token = pipe3 getPosition token getPosition (fun sp t ep -> (t, TokenPosition(sp, ep)))

Думаю, это не имеет особого смысла, так как StartPosition и EndPosition - это не более, чем typedefs для Position Что здесь не так?

1 Ответ

4 голосов
/ 30 августа 2011

Вы не должны получать это сообщение об ошибке, если StartPosition был просто псевдонимом Position, поэтому должно быть что-то еще, что пошло не так. Трудно сказать без более полного образца, но вот несколько вещей, которые нужно проверить:

  • Вы имеете в виду правильный тип Position? (Вы можете проверить полную информацию о типе, посмотрев на подсказку, которая появляется, когда вы наводите указатель мыши на имя типа)

  • Определен ли тип Position только в одном файле? (Если другой файл переопределит его, у вас будет два разных типа с именем Position)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...