summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GF/Grammar/Lockfield.hs2
-rw-r--r--src/haddock/haddock-check.perl21
-rw-r--r--src/module-structure.txt1
3 files changed, 17 insertions, 7 deletions
diff --git a/src/GF/Grammar/Lockfield.hs b/src/GF/Grammar/Lockfield.hs
index fb9043b00..3cdfdaa54 100644
--- a/src/GF/Grammar/Lockfield.hs
+++ b/src/GF/Grammar/Lockfield.hs
@@ -12,7 +12,7 @@
-- Creating and using lock fields in reused resource grammars.
-----------------------------------------------------------------------------
-module Lockfield where
+module Lockfield (lockRecType, unlockRecord, lockLabel) where
import Grammar
import Ident
diff --git a/src/haddock/haddock-check.perl b/src/haddock/haddock-check.perl
index cea2a6cb1..a7f591cba 100644
--- a/src/haddock/haddock-check.perl
+++ b/src/haddock/haddock-check.perl
@@ -2,7 +2,7 @@
# checking that a file is haddocky
# limitations:
-# - does not check that 'type' declarations really are put in the export list
+# - does not check that type aliases are put in the export list
# - there might be some problems with nested comments
for $file (@ARGV) {
@@ -14,30 +14,39 @@ for $file (@ARGV) {
# print "- $file\n";
- # removing comments:
+ # removing comments
s/\{-.*?-\}//gs;
s/--.*?\n/\n/g;
- # export list:
+ # export list
if (/\nmodule\s+(\w+)\s+\((.*?)\)\s+where/s) {
($module, $exportlist) = ($1, $2);
- # removing modules from exportlist:
+ # removing modules from exportlist
$exportlist =~ s/module\s+[A-Z]\w*//gs;
- # type signatures:
+ # type signatures
while (/\n([a-z]\w*)\s*::/gs) {
$function = $1;
$exportlist =~ s/\b$function\b//;
}
+ # type aliases
+ while (/\ntype\s+(\w+)/gs) {
+ $type = $1;
+ next if $exportlist =~ /\b$type\b/;
+ printf "%-30s | Type alias not in export list: %s\n", $file, $type;
+ }
+
+ # exported functions without type signatures
while ($exportlist =~ /\b(\w+)\b/gs) {
$function = $1;
next if $function =~ /^[A-Z]/;
- printf "%-30s | No type signature for '%s'\n", $file, $1;
+ printf "%-30s | No type signature for function: %s\n", $file, $function;
}
} else {
+ # modules without export lists
printf "%-30s | No export list\n", $file;
}
diff --git a/src/module-structure.txt b/src/module-structure.txt
index ff7d8e199..678f47d28 100644
--- a/src/module-structure.txt
+++ b/src/module-structure.txt
@@ -109,6 +109,7 @@ GF/
AppPredefined
Compute
Grammar
+ Lockfield
LookAbs
Lookup
MMacros