From 44815fd981efb3fecddadd8bc1506bd4b21362d0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 6 Mar 2009 23:33:03 -0600 Subject: [PATCH] Better handling of case when user-defined accessor becomes auto-generated --- core/parser/parser.factor | 6 +++--- core/slots/slots.factor | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/parser/parser.factor b/core/parser/parser.factor index 9e578120f4..ac1c2695f2 100644 --- a/core/parser/parser.factor +++ b/core/parser/parser.factor @@ -5,7 +5,7 @@ sequences strings vectors words words.symbol quotations io combinators sorting splitting math.parser effects continuations io.files vocabs io.encodings.utf8 source-files classes hashtables compiler.errors compiler.units accessors sets -lexer vocabs.parser ; +lexer vocabs.parser slots ; IN: parser : location ( -- loc ) @@ -223,8 +223,8 @@ print-use-hook [ [ ] ] initialize swap assoc-diff keys [ { { [ dup where dup [ first ] when file get path>> = not ] [ f ] } - { [ dup "reading" word-prop ] [ f ] } - { [ dup "writing" word-prop ] [ f ] } + { [ dup reader-method? ] [ f ] } + { [ dup writer-method? ] [ f ] } [ t ] } cond nip ] filter ; diff --git a/core/slots/slots.factor b/core/slots/slots.factor index ea020c5c55..71c2bdcc90 100755 --- a/core/slots/slots.factor +++ b/core/slots/slots.factor @@ -10,8 +10,12 @@ TUPLE: slot-spec name offset class initial read-only ; PREDICATE: reader < word "reader" word-prop ; +PREDICATE: reader-method < method-body "reading" word-prop ; + PREDICATE: writer < word "writer" word-prop ; +PREDICATE: writer-method < method-body "writing" word-prop ; + : ( -- slot-spec ) slot-spec new object bootstrap-word >>class ;