aiscript icon indicating copy to clipboard operation
aiscript copied to clipboard

型引数で定義した型に型引数を与えられてしまう

Open takejohn opened this issue 3 weeks ago • 3 comments

@f<T>(x: T<num>) {}

Tstrだとすると、str<num>という不正な型を意味してしまうため、 これはエラーになってほしい。 プレイグラウンド: https://aiscript-dev.github.io/ja/playground.html#N4Igxg9gJgpiBcIACAzAPAFQHwAoAe8ABBmgHYCuAtlgJSHAC+IANCAG4wBOAzgJYSkEIAIwA6AEyiADCAZA

takejohn avatar Dec 05 '25 10:12 takejohn

名前解決の話なので、型チェックを実装する時にその実行時に検出するようにしたほうがいいような?

FineArchs avatar Dec 06 '25 02:12 FineArchs

現在のリリース版では既に、存在しない型の名前を書いたり、str<num>のように型引数を受け付けない型に型引数を書いたりするとエラーになるので、この例に従うとジェネリック型に型引数を与えた場合もエラーにすべきかなと思っています……

takejohn avatar Dec 06 '25 04:12 takejohn

あー確かに 要するに、現行の仕組みだとそもそもユーザー定義型が作れないから名前解決が必要なくなってるんですよね ユーザー定義型が実現するのもいつになるかわかりませんし、それなら一旦は型引数も同じような実装にしてしまってもいいかも?

FineArchs avatar Dec 06 '25 08:12 FineArchs