diff -r 43287eef2fff -r 072f1114ea5d src/Types.cpp --- a/src/Types.cpp Mon Dec 24 02:56:02 2012 -0800 +++ b/src/Types.cpp Mon Dec 24 16:09:13 2012 -0800 @@ -135,86 +135,6 @@ return type; } -#if 0 -Type * -Type::NewNative(Zone *zone, Handle returnType, Handle parameters, - Handle defaults, bool variadic) -{ - Local type(zone, Type::cast(zone->allocate(MapKind_Type, sizeof(Type), Heap::Tenure_Old))); - if (!type) - return NULL; - - type->kind_ = NATIVE; - type->contained_ = NULL; - type->fields_ = NULL; - type->newMap_ = NULL; - type->returnType_ = returnType; - type->parameters_ = parameters; - type->defaults_ = defaults; - type->variadicNative_ = variadic; - return type; -} -#endif - -bool -Type::Compare(Type *left, Type *right) -{ - if (left == right) - return true; - - if (left->kind() != right->kind()) - return false; - - switch (left->kind()) { - case Type::PRIMITIVE: - return left->primitive() == right->primitive(); - - case Type::ARRAY: - { - ArrayType *aleft = ArrayType::cast(left); - ArrayType *aright = ArrayType::cast(right); - if (aleft->levels() != aright->levels()) - return false; - if (aleft->isFixedLength() != aright->isFixedLength()) - return false; - if (aleft->isFixedLength() && aleft->fixedLength() != aright->fixedLength()) - return false; - return Compare(aleft->contained(), aright->contained()); - } - - case Type::FUNCTION: - { - FunctionType *fleft = FunctionType::cast(left); - FunctionType *fright = FunctionType::cast(right); - if (!Compare(fleft->returnType(), fright->returnType())) - return false; - if (fleft->parameters()->length() != fright->parameters()->length()) - return false; - if (fleft->isNative() != fright->isNative()) - return false; - if (fleft->isNative() && (fleft->isNativeVariadic() != fright->isNativeVariadic())) - return false; - for (unsigned i = 0; i < fleft->parameters()->length(); i++) { - Type *leftparam = fleft->parameterAt(i); - Type *rightparam = fright->parameterAt(i); - if (!Compare(leftparam, rightparam)) - return false; - } - return true; - } - - case Type::ENUM: - return false; - - case Type::VOID: - return true; - - default: - assert(left->kind() == Type::REFERENCE); - return Compare(ReferenceType::cast(left)->contained(), ReferenceType::cast(right)->contained()); - } -} - StructType * StructType::New(Zone *zone, Handle name, Handle fields) {