You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: assignable.go
    path of file: ./repos/gapid/core/java/jdbg
    
    the code of the file until where you have to start completion: // Copyright (C) 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (t
    
func (j *JDbg) assignableT(dst Type, src reflect.Type) bool {
	if dst == j.cache.objTy {
		return true // Anything goes in an object!
	}
	if src == nil {
		_, isClass := dst.(*Class)
		return isClass
	}
	switch src.Kind() {
	case reflect.Ptr, reflect.Interface:
		return j.assignableT(dst, src.Elem())
	case reflect.Bool:
		return dst == j.cache.boolTy
	case reflect.Int8, reflect.Uint8:
		return dst == j.cache.byteTy
	case reflect.Int16:
		return dst == j.cache.charTy || dst == j.cache.shortTy
	case reflect.Int32, reflect.Int:
		return dst == j.cache.intTy
	case reflect.Int64:
		return dst == j.cache.longTy
	case reflect.Float32:
		return dst == j.cache.floatTy
	case reflect.Float64:
		return dst == j.cache.doubleTy
	case reflect.String:
		return dst == j.cache.stringTy
	case reflect.Array, reflect.Slice:
		if dstArray, ok := dst.(*Array); ok {
			return j.assignableT(dstArray.el, src.Elem())
		}
	}

	return false
}