Fix class resetting
							parent
							
								
									a27fa29098
								
							
						
					
					
						commit
						93d9722a6b
					
				| 
						 | 
				
			
			@ -7,7 +7,7 @@ IN: classes.mixin
 | 
			
		|||
PREDICATE: mixin-class < union-class "mixin" word-prop ;
 | 
			
		||||
 | 
			
		||||
M: mixin-class reset-class
 | 
			
		||||
    { "metaclass" "members" "mixin" } reset-props ;
 | 
			
		||||
    { "class" "metaclass" "members" "mixin" } reset-props ;
 | 
			
		||||
 | 
			
		||||
: redefine-mixin-class ( class members -- )
 | 
			
		||||
    dupd define-union-class
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,5 +25,8 @@ PREDICATE: predicate-class < class
 | 
			
		|||
 | 
			
		||||
M: predicate-class reset-class
 | 
			
		||||
    {
 | 
			
		||||
        "metaclass" "predicate-definition" "superclass"
 | 
			
		||||
        "class"
 | 
			
		||||
        "metaclass"
 | 
			
		||||
        "predicate-definition"
 | 
			
		||||
        "superclass"
 | 
			
		||||
    } reset-props ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,6 +212,7 @@ M: tuple-class reset-class
 | 
			
		|||
        ] with each
 | 
			
		||||
    ] [
 | 
			
		||||
        {
 | 
			
		||||
            "class"
 | 
			
		||||
            "metaclass"
 | 
			
		||||
            "superclass"
 | 
			
		||||
            "layout"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,4 +29,4 @@ M: union-class update-class define-union-predicate ;
 | 
			
		|||
    2bi ;
 | 
			
		||||
 | 
			
		||||
M: union-class reset-class
 | 
			
		||||
    { "metaclass" "members" } reset-props ;
 | 
			
		||||
    { "class" "metaclass" "members" } reset-props ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -505,8 +505,10 @@ SYMBOL: interactive-vocabs
 | 
			
		|||
: fix-class-words ( -- )
 | 
			
		||||
    #! If a class word had a compound definition which was
 | 
			
		||||
    #! removed, it must go back to being a symbol.
 | 
			
		||||
    new-definitions get first2 diff
 | 
			
		||||
    [ nip dup reset-generic define-symbol ] assoc-each ;
 | 
			
		||||
    new-definitions get first2
 | 
			
		||||
    [ diff values [ [ reset-generic ] [ define-symbol ] bi ] each ]
 | 
			
		||||
    [ swap diff values [ class? ] subset [ reset-class ] each ]
 | 
			
		||||
    2bi ;
 | 
			
		||||
 | 
			
		||||
: forget-smudged ( -- )
 | 
			
		||||
    smudged-usage forget-all
 | 
			
		||||
| 
						 | 
				
			
			@ -515,9 +517,10 @@ SYMBOL: interactive-vocabs
 | 
			
		|||
 | 
			
		||||
: finish-parsing ( lines quot -- )
 | 
			
		||||
    file get
 | 
			
		||||
    [ record-form ] keep
 | 
			
		||||
    [ record-definitions ] keep
 | 
			
		||||
    record-checksum ;
 | 
			
		||||
    [ record-form ]
 | 
			
		||||
    [ record-definitions ]
 | 
			
		||||
    [ record-checksum ]
 | 
			
		||||
    tri ;
 | 
			
		||||
 | 
			
		||||
: parse-stream ( stream name -- quot )
 | 
			
		||||
    [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue