F # behandelt das interne Modul als privat

8

Irgendwelche Ideen, warum das Folgende nicht kompiliert?

In der letzten Zeile sagt es mir, dass Module1 nicht definiert ist. Wenn ich das "interne" von Modul1 entferne, funktioniert es gut.

Ich habe zwei Code-Dateien und Module1.fs ist über Module2.fs im Projekt.

Module1.fs

%Vor%

Module2.fs

%Vor%     
Mark Pattison 06.09.2011, 15:48
quelle

3 Antworten

7

Sie müssen Ihren Modulen einen Namensraum geben, damit das Modul internal für spätere Module sichtbar ist.

%Vor%     
Daniel 06.09.2011, 15:55
quelle
4

Compilerfehler

Während die Antworten hier Problemumgehungen sind, ist dieses Verhalten immer noch ein Compilerfehler. Beim Lesen der Dokumente und der Expert F # von Don Syme gibt es keinen Punkt, der darauf hinweist, dass interne Module nur dann zugänglich sind, wenn Sie auch namespsaces verwenden.

Betrachtet man den Code, den der Compiler ausgibt, würde ich keine Schwierigkeiten sehen, Typen in internen Modulen innerhalb der Baugruppe sichtbar zu machen.

Bearbeiten: Nachdem er dieses Verhalten bei @fsbugs eingereicht hatte, bestätigte der Meister selbst, Don Syme, dass dies ein Fehler ist. Ich habe ein Workitem für diesen Fall hinzugefügt:

Ссылка

    
citykid 05.04.2014 08:26
quelle
2

Dies sollte ein Namespace-Problem sein. Fügen Sie einfach Namespace-Definitionen über Ihre beiden Dateien (der gleiche Namespace!) Wie folgt hinzu:

%Vor%

und

%Vor%     
Carsten 06.09.2011 15:53
quelle

Tags und Links