Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The same pattern variable is allowed but should be rejected. #21

Open
kenichi-asai opened this issue Mar 28, 2019 · 4 comments
Open

The same pattern variable is allowed but should be rejected. #21

kenichi-asai opened this issue Mar 28, 2019 · 4 comments

Comments

@kenichi-asai
Copy link
Contributor

(レコードのサポート、ありがとうございます。)
現在、match 文で、レコードのパターンを使うと、パターン変数に同じ変数がデフォルトで入っていますが、異なる変数にしたいです。加えて、ユーザが同じ名前のパターン変数に rename しようとしたら拒否したいです。

@harukamm
Copy link
Owner

harukamm commented Mar 28, 2019

ご報告ありがとうございます!

異なる変数にすることに関しては、どっちのタイミングが適切だと思いますか。

  1. パターンお砂場のサイドメニューの時点で
  2. マッチブロックに接続する瞬間に

実装的には 2. のほうが楽かなと思います。

同じ名前のパターン変数にしようとしたら拒否するのは、大事ですね。実装的には、https://github.com/harukamm/ocaml-blockly/blob/master/core/bound_variables.js#L396 この関数をいじることになるかなあという見通しです。

@kenichi-asai
Copy link
Contributor Author

kenichi-asai commented Mar 29, 2019 via email

@kenichi-asai
Copy link
Contributor Author

関連して、レコードや variant のデフォルトの型名は a, b 等でなく、うしろに _t をつけた a_t, b_t 等にしたいです。

@kenichi-asai
Copy link
Contributor Author

この issue は、プルリク #38 でほとんど解決したと思います。懸案は以下。

  • 「同じパターン変数名にしようとしても拒否していない」件はまだです。書いてくれている通り、https://github.com/harukamm/ocaml-blockly/blob/master/core/bound_variables.js#L396 を変更することになると思うのですが、どうもこの関数の動きを理解できていません。ぼくの方は、これは当分保留です。
  • バリアント定義の方は、まだ型名が data で決め打ちのままです。これを data_t に変更することはできますが、毎回、同じ名前になります。レコード定義の方は、型名はブルダウンメニューになっていますが、バリアント定義の方は書き込める形になっています。個人的には、後者に統一できると良いと思うのですが...。
  • 関連して、バリアント定義の型名にマウスを合わせると、どういうわけかフィールドもハイライトされます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants