if (binding != null) {
if (type.isArrayType()) {
ArrayType arrayType = (ArrayType) type;
if (this.scope == null) return null;
if (binding.isArrayType()) {
ArrayBinding arrayBinding = (ArrayBinding) binding;
return getTypeBinding(this.scope.createArrayType(arrayBinding.leafComponentType, arrayType.getDimensions()));
} else {
return getTypeBinding(this.scope.createArrayType(binding, arrayType.getDimensions()));
}
} else {
if (binding.isArrayType()) {
ArrayBinding arrayBinding = (ArrayBinding) binding;
return getTypeBinding(arrayBinding.leafComponentType);
} else {
return getTypeBinding(binding);
}
}