diff --git a/collects/redex/private/term.rkt b/collects/redex/private/term.rkt index 21ceeeb2cf..b3de2f0199 100644 --- a/collects/redex/private/term.rkt +++ b/collects/redex/private/term.rkt @@ -45,7 +45,7 @@ (syntax-e #'form))]) (if (syntax->datum #'lang-stx) (let ([lang-nts (let loop ([ls #'lang-stx]) - (define slv (syntax-local-value ls)) + (define slv (syntax-local-value ls (λ () #'lang-stx))) (if (term-id? slv) (loop (term-id-prev-id slv)) (language-id-nts ls 'term)))]) diff --git a/collects/redex/tests/syn-err-tests/term-lang.rktd b/collects/redex/tests/syn-err-tests/term-lang.rktd index ccf298440f..06ead00cf8 100644 --- a/collects/redex/tests/syn-err-tests/term-lang.rktd +++ b/collects/redex/tests/syn-err-tests/term-lang.rktd @@ -5,3 +5,7 @@ (#rx"before underscore" ([not-a-non-term AA_1]) (term (Q_1 Q_2 (Q_3 not-a-non-term)) #:lang syn-err-lang)) + +(#rx".*define-language.*boglang" + ([bogus-language boglang]) + (term 5 #:lang bogus-language))