Changeset 3621


Ignore:
Timestamp:
09/08/03 15:19:29 (19 years ago)
Author:
piso
Message:

(subtypep 'character 'base-char) => t

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Type.java

    r3353 r3621  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: Type.java,v 1.15 2003-08-12 15:22:57 piso Exp $
     5 * $Id: Type.java,v 1.16 2003-09-08 15:19:29 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    2929    private static final HashMap map = new HashMap();
    3030
    31     private final ArrayList superTypes = new ArrayList();
     31    private final ArrayList supertypes = new ArrayList();
    3232
    3333    private final Symbol symbol;
     
    4141    }
    4242
    43     private Type(Symbol symbol, Type superType)
     43    private Type(Symbol symbol, Type supertype)
    4444    {
    4545        this.symbol = symbol;
     
    4747            map.put(symbol, this);
    4848        }
    49         synchronized (superTypes) {
    50             superTypes.add(superType);
    51         }
    52     }
    53 
    54     private Type(Symbol symbol, Type superType1, Type superType2)
     49        synchronized (supertypes) {
     50            supertypes.add(supertype);
     51        }
     52    }
     53
     54    private Type(Symbol symbol, Type supertype1, Type supertype2)
    5555    {
    5656        this.symbol = symbol;
     
    5858            map.put(symbol, this);
    5959        }
    60         synchronized (superTypes) {
    61             superTypes.add(superType1);
    62             superTypes.add(superType2);
     60        synchronized (supertypes) {
     61            supertypes.add(supertype1);
     62            supertypes.add(supertype2);
     63        }
     64    }
     65
     66    private void addSupertype(Type supertype)
     67    {
     68        synchronized (supertypes) {
     69            supertypes.add(supertype);
    6370        }
    6471    }
     
    107114        if (otherType == this)
    108115            return true;
    109         for (int i = 0; i < superTypes.size(); i++) {
    110             if (superTypes.get(i) == otherType)
     116        for (int i = 0; i < supertypes.size(); i++) {
     117            if (supertypes.get(i) == otherType)
    111118                return true;
    112119        }
    113         for (int i = 0; i < superTypes.size(); i++) {
    114             Type superType = (Type) superTypes.get(i);
    115             if (superType._isSubtypeOf(otherType))
     120        for (int i = 0; i < supertypes.size(); i++) {
     121            Type supertype = (Type) supertypes.get(i);
     122            if (supertype._isSubtypeOf(otherType))
    116123                return true;
    117124        }
     
    172179    public static final Type STANDARD_CHAR =
    173180        new Type(Symbol.STANDARD_CHAR, BASE_CHAR);
     181
     182    static {
     183        CHARACTER.addSupertype(BASE_CHAR);
     184    }
    174185
    175186    // Subtypes of NUMBER
Note: See TracChangeset for help on using the changeset viewer.