@Override
	public Descriptor compile(SymbolTable syms) {
	    
	    Descriptor descr = null;
	    String identName = ((IdentNode)ident).getIdentName();
	    
	    if (type instanceof IdentNode) {
	        descr = syms.descriptorFor(identName);
	    } else if (type instanceof ArrayTypeNode || type instanceof RecordTypeNode) {
	        descr = type.compile(syms);
	    } else {
	        throw new CompilerException("unsupported type: " + type);
	    }
	    
	    syms.declareType(identName, descr);
	    
	    return descr;
	}