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