func methodA<T:ExpressibleByIntegerLiteral>(n:T)->(){

    var i = 1
    var j = T(integerLiteral:i) 
}

上記の関数は、「var j = T(integerLiteral:i) 」でコンパイルエラーとなります。

しかし、私の解釈では、T型は、ExpressibleByIntegerLiteralプロトコルに準拠しているとしており、またプロトコルは、init(integerLiteral:)[REQUIRED]とあるので、なぜエラーとなるのかが理解ができません。
私は何が理解できていないのでしょうか。教えてください。