factor/extra/smalltalk/compiler/lexenv/lexenv-tests.factor

25 lines
720 B
Factor

USING: smalltalk.compiler.lexenv tools.test kernel namespaces accessors ;
IN: smalltalk.compiler.lexenv.tests
TUPLE: some-class x y z ;
SYMBOL: fake-self
SYMBOL: fake-local
<lexenv>
some-class >>class
fake-self >>self
H{ { "mumble" fake-local } } >>local-readers
H{ { "jumble" fake-local } } >>local-writers
lexenv set
{ [ fake-local ] } [ "mumble" lexenv get lookup-reader ] unit-test
{ [ fake-self x>> ] } [ "x" lexenv get lookup-reader ] unit-test
{ [ \ tuple ] } [ "Object" lexenv get lookup-reader ] unit-test
{ [ fake-local ] } [ "jumble" lexenv get lookup-writer ] unit-test
{ [ fake-self y<< ] } [ "y" lexenv get lookup-writer ] unit-test
[ "blahblah" lexenv get lookup-writer ] must-fail