diff --git a/collects/drscheme/private/module-language.ss b/collects/drscheme/private/module-language.ss index 9e8871caab..36d46b1f72 100644 --- a/collects/drscheme/private/module-language.ss +++ b/collects/drscheme/private/module-language.ss @@ -158,10 +158,10 @@ "there can only be one expression in the definitions window" super-result)))] [(= 4 iteration-number) - #`(eval #,#`(#%app current-namespace + #`(#%app current-namespace (#%app module->namespace - '#,(get-full-module-name))))] + (#%datum . #,(get-full-module-name))))] [else eof])))) ;; printer settings are just ignored here. diff --git a/collects/tests/drscheme/module-lang-test.ss b/collects/tests/drscheme/module-lang-test.ss index f2c04cc32a..5f3e959a9b 100644 --- a/collects/tests/drscheme/module-lang-test.ss +++ b/collects/tests/drscheme/module-lang-test.ss @@ -17,6 +17,7 @@ (define tests (list + (make-test "" #f (regexp "module-language: the definitions window must contain a module")) @@ -116,7 +117,12 @@ (syntax-rules () ((app . x) '(app . x)))))) "x" - "2"))) + "2") + + (make-test + (format "~s" `(module m (file ,(path->string (build-path this-dir "module-lang-test-tmp.ss"))) 1 2 3)) + "1" ;; just make sure no errors. + "1"))) ;; set up for tests that need external files (call-with-output-file (build-path this-dir "module-lang-test-tmp.ss") @@ -137,6 +143,21 @@ port)) 'truncate 'text) + + (call-with-output-file (build-path this-dir "module-lang-test-tmp3.ss") + (lambda (port) + (write `(module module-lang-test-tmp3 mzscheme + (define-syntax (bug-datum stx) + (syntax-case stx () + [(dat . thing) + (number? (syntax-e (syntax thing))) + (syntax/loc stx (#%datum . thing))])) + + (provide #%module-begin [rename bug-datum #%datum])) + + port)) + 'truncate + 'text) (define drs (wait-for-drscheme-frame)) (define interactions-text (send drs get-interactions-text))