I got Unknown list type. error when I used constants for the list size.
e.g.
TREE_DEPTH: constant(uint256) = 16
@public
def calcMerkleRoot(_proof: bytes32[TREE_DEPTH]):
pass
With bytes[TREE_DEPTH] (fixed-size byte arrays) the same error occurs.
I'm not sure this is an error or intended but constants for the list size would be useful.

I think the current listType parser in line 329~349 of types.py does not support elif isinstance(item.slice.value, ast.Name):, whereas ast.Num is supported. so the variable jumps into else statement case and shows error 'Unknown list type'. I will see what I can do. I will probably add logic to look up value in ast.Name, check its type, and apply same logic as ast.Num does if its value is an integer.
@nrryuya please test constant fixes have just been merged ;)
@jacqueswww
This is fixed! Thank you ;)
Most helpful comment
I think the current listType parser in line 329~349 of types.py does not support
elif isinstance(item.slice.value, ast.Name):, whereasast.Numis supported. so the variable jumps into else statement case and shows error 'Unknown list type'. I will see what I can do. I will probably add logic to look up value inast.Name, check its type, and apply same logic asast.Numdoes if its value is an integer.