# Function signature matches but still fails

**URL:** <https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224>\
**Category:** Support: What is this error message?\
**Created:** [January 29, 2026, 10:38am UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224 "2026-01-29T10:38:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![damienlkj](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/damienlkj/32/1286_2.png) [@damienlkj](https://numba.discourse.group/u/damienlkj)\
**Post date:** [January 29, 2026, 10:38am UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/1 "2026-01-29T10:38:27Z")

</div>

I have a function signature with the following:  
@njit((float32[:], ListType(float32[:]), ListType(float32[:]), ListType(int64[:]), int64[:], ListType(int64[:]), int64[:], float64[:], float64[:], float64, float64, float64[:], ListType(int64[:])), parallel=True)

However, I still obtain an error message:  
TypeError: No matching definition for argument type(s) array(float32, 1d, C), ListType[array(float32, 1d, C)], ListType[array(float32, 1d, C)], ListType[array(int64, 1d, C)], array(int64, 1d, C), ListType[array(int64, 1d, C)], array(int64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, array(float64, 1d, C), ListType[array(int64, 1d, C)]

I don’t understand why it fails as all the argument types matches my function signature?

---

<div class="post-metadata">

**Author:** ![nelson2005](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/nelson2005/32/47_2.png) [@nelson2005](https://numba.discourse.group/u/nelson2005)\
**Post date:** [January 29, 2026, 1:59pm UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/2 "2026-01-29T13:59:12Z")

</div>

Interesting…. Can you work up a minimal reproducer complete program that shows the problem?

---

<div class="post-metadata">

**Author:** ![gmarkall](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/gmarkall/32/42_2.png) [@gmarkall](https://numba.discourse.group/u/gmarkall)\
**Post date:** [January 29, 2026, 3:59pm UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/3 "2026-01-29T15:59:34Z")

</div>

`float32[:]` is `array(float32, 1d, A)`. To get `array(float32, 1d, C)`, you need to write `float32[::1]`. (This may not be the main/only reason, perhaps there is some other issue as well, but for C ordered arrays you should at least write the indexing as `::1`).

---

<div class="post-metadata">

**Author:** ![nelson2005](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/nelson2005/32/47_2.png) [@nelson2005](https://numba.discourse.group/u/nelson2005)\
**Post date:** [January 29, 2026, 9:34pm UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/4 "2026-01-29T21:34:12Z")

</div>

For next time, it may be better to let Numba infer the signature and then inspect it with [nopython\_signatures](https://numba.discourse.group/t/numba-generator-function-throws-typing-error/2692/3). That’ll likely show what @gmarkall referenced

---

<div class="post-metadata">

**Author:** ![damienlkj](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/damienlkj/32/1286_2.png) [@damienlkj](https://numba.discourse.group/u/damienlkj)\
**Post date:** [January 30, 2026, 6:50pm UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/5 "2026-01-30T18:50:05Z")

</div>

Thank you, this solves the issue. However I don’t understand why it doesn’t match since the documentation says that `A` means any layout, which means in principle, shouldn’t `C` work as well?

---

<div class="post-metadata">

**Author:** ![milton](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@milton](https://numba.discourse.group/u/milton)\
**Post date:** [February 1, 2026, 9:59pm UTC](https://numba.discourse.group/t/function-signature-matches-but-still-fails/3224/6 "2026-02-01T21:59:48Z")

</div>

On this topic, in the future, a good way to debug such error messages is to temporarily remove the explicit signature, call the function, and print `<func_name>.nopython_signatures`. Then compare the so printed signature with what you are trying to overload your function with.

EDIT: Oops, didn’t realize @nelson2005 already said the same 😃
