# Error: invalid subtyping in definition of a type

**URL:** https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093
**Category:** New to Julia
**Created:** [January 1, 2018, 2:46pm UTC](https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093 "2018-01-01T14:46:29Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)
#### Post date: [January 1, 2018, 2:46pm UTC](https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093/1 "2018-01-01T14:46:29Z")

</div>

I am trying to understand why I get an error

```julia
ERROR: invalid subtyping in definition of StringIndexVector

```

where I try to define

```julia
struct StringIndexVector <: AbstractVector
    svec::Vector{String}
    index::Vector{Integer}
end

```

but the below is fine. I think AbstractVector is an AbstractType so I can define a subtype under it.

```julia
struct StringIndexVector
    svec::Vector{String}
    index::Vector{Integer}
end

```

I am on Julia 0.6.2

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [January 1, 2018, 2:53pm UTC](https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093/2 "2018-01-01T14:53:32Z")

</div>

You need to define the `T` in `AbstractVector{T} where T` e.g.

```julia
struct StringIndexVector{T} <: AbstractVector{T}
    svec::Vector{String}
    index::Vector{Integer}
end

```

For efficiency, you probably want to use `Int` instead of `Integer` in your `index`-`Vector` (or parameterize on the integer type).

---

<div class="post-metadata">

### Author: ![ksamtsak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ksamtsak/32/10585_2.png) [@ksamtsak](https://discourse.julialang.org/u/ksamtsak)
#### Post date: [June 24, 2018, 4:50pm UTC](https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093/3 "2018-06-24T16:50:06Z")

</div>

On julia-0.6.2 I’m getting the same error when trying to declare

```julia
struct wrapping_hypercube{N,T} <: hypercube{N,T} end

```

`hypercube` is:

```julia
struct hypercube{N,T}
...
end

```

---

<div class="post-metadata">

### Author: ![ksamtsak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ksamtsak/32/10585_2.png) [@ksamtsak](https://discourse.julialang.org/u/ksamtsak)
#### Post date: [June 24, 2018, 4:50pm UTC](https://discourse.julialang.org/t/error-invalid-subtyping-in-definition-of-a-type/8093/4 "2018-06-24T16:50:17Z")

</div>

The answer is in the manual: I can’t subtype from concrete types. Thanks!
