From eaab83b633a7a33cf3dd9c3047b308cef5fd6dde Mon Sep 17 00:00:00 2001 From: "Brian T. Rice" Date: Wed, 16 Feb 2011 20:24:49 -0800 Subject: [PATCH] Fixed the #environment accessor for non-CompiledMethod Methods. --- src/lib/method-query.slate | 2 +- src/mobius/compiler.slate | 2 +- src/mobius/primitive-method.slate | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/method-query.slate b/src/lib/method-query.slate index a5910b8..2323000 100644 --- a/src/lib/method-query.slate +++ b/src/lib/method-query.slate @@ -62,7 +62,6 @@ implement that selector." m literals do: [| :each | (each is: Method) ifTrue: [result ; each allSelectorsSentImplicitly]]. m sourceTree - ifNil: [] ifNotNilDo: [| :src | result ; src allSelectorsSentImplicitly]] writingAs: Set ]. @@ -73,6 +72,7 @@ m@(Closure traits) acceptsAdditionalArguments [m method acceptsAdditionalArgumen m@(Closure traits) allSelectorsSent [m method allSelectorsSent]. m@(Closure traits) selector [m method selector]. m@(Closure traits) optionalKeywords [m method optionalKeywords]. +m@(Closure traits) environment [m method environment]. m@(Method traits) selector "By default, Methods are not named, so this answers Nil." diff --git a/src/mobius/compiler.slate b/src/mobius/compiler.slate index ebaeed4..477bbe6 100644 --- a/src/mobius/compiler.slate +++ b/src/mobius/compiler.slate @@ -319,7 +319,7 @@ and push it onto the stack." newBlock ::= CompiledMethod new `>> [environment := block bodyIncludesImplicitSends ifTrue: [gen contexts isEmpty - ifTrue: [block parentScope topLevel namespace] + ifTrue: [block topLevel namespace] ifFalse: [gen currentMethod environment]]. sourceTree := block. ]. gen contexts push: (gen Context newOn: newBlock). diff --git a/src/mobius/primitive-method.slate b/src/mobius/primitive-method.slate index 93a6981..8ed5906 100644 --- a/src/mobius/primitive-method.slate +++ b/src/mobius/primitive-method.slate @@ -27,6 +27,7 @@ m@(PrimitiveMethod traits) inputVariables [m arity]. m@(PrimitiveMethod traits) restVariable [Nil]. m@(PrimitiveMethod traits) sourceTree [Nil]. m@(PrimitiveMethod traits) heapAllocate [False]. +m@(PrimitiveMethod traits) environment [Nil]. m@(PrimitiveMethod traits) definitionLocation [ -- 2.11.4.GIT