[commit: ghc] ghc-8.2: unlit: replace the SHEBANG with an empty line (bd3c648)

git at git.haskell.org git at git.haskell.org
Mon Mar 13 21:44:42 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-8.2
Link       : http://ghc.haskell.org/trac/ghc/changeset/bd3c648dc22e7e268c6390db822a704dc61b14b7/ghc

>---------------------------------------------------------------

commit bd3c648dc22e7e268c6390db822a704dc61b14b7
Author: Phil Ruffwind <rf at rufflewind.com>
Date:   Mon Mar 13 15:17:47 2017 -0400

    unlit: replace the SHEBANG with an empty line
    
    This corrects the line numbers for literate code after a shebang.
    Fixes #13414.
    
    Test Plan: validate
    
    Reviewers: austin, bgamari, trofi
    
    Reviewed By: bgamari, trofi
    
    Subscribers: trofi, rwbarton, thomie
    
    Differential Revision: https://phabricator.haskell.org/D3333
    
    (cherry picked from commit c77b767098be53087e0b06ba23d613dd7c3bcf8e)


>---------------------------------------------------------------

bd3c648dc22e7e268c6390db822a704dc61b14b7
 testsuite/tests/parser/should_fail/T13414.lhs    | 3 +++
 testsuite/tests/parser/should_fail/T13414.stderr | 2 ++
 testsuite/tests/parser/should_fail/all.T         | 1 +
 utils/unlit/unlit.c                              | 3 +++
 4 files changed, 9 insertions(+)

diff --git a/testsuite/tests/parser/should_fail/T13414.lhs b/testsuite/tests/parser/should_fail/T13414.lhs
new file mode 100644
index 0000000..fe6b960
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/T13414.lhs
@@ -0,0 +1,3 @@
+#!/usr/bin/env runhaskell
+> module T13414 where
+> main = invalid_ident_
diff --git a/testsuite/tests/parser/should_fail/T13414.stderr b/testsuite/tests/parser/should_fail/T13414.stderr
new file mode 100644
index 0000000..f5b0001
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/T13414.stderr
@@ -0,0 +1,2 @@
+
+T13414.lhs:3:10: error: Variable not in scope: invalid_ident_
diff --git a/testsuite/tests/parser/should_fail/all.T b/testsuite/tests/parser/should_fail/all.T
index 1496fec..b897484 100644
--- a/testsuite/tests/parser/should_fail/all.T
+++ b/testsuite/tests/parser/should_fail/all.T
@@ -97,3 +97,4 @@ test('T12051', normal, compile_fail, [''])
 test('T12429', normal, compile_fail, [''])
 test('T12811', normal, compile_fail, [''])
 test('T13260', normal, compile_fail, [''])
+test('T13414', literate, compile_fail, [''])
diff --git a/utils/unlit/unlit.c b/utils/unlit/unlit.c
index c0e3b98..9a697eb 100644
--- a/utils/unlit/unlit.c
+++ b/utils/unlit/unlit.c
@@ -296,6 +296,9 @@ static void unlit(char *file, FILE *istream, FILE *ostream)
 	    }
 	}
 #endif
+	if (this == SHEBANG) {
+	    myputc('\n', ostream);
+	}
     } while(this!=ENDFILE);
 
     if (defnsread==0)



More information about the ghc-commits mailing list