We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Go に起こす部分でユニークなのは any にしなければならないという点でしかない。 情報量が落ちる処理のみが言語系に合わせる部分であり、その表現力を失わない範囲で併合することは問題がない。 その処理だけを切り出せば綺麗にまとまるのでは?
利点としては
欠点としては
具体的には3つに分解する
IRUnion
方針: 同じ型のみ合成する
IRPrimitive
IRSlice
of
IRStruct
field
IRIgnore
[注意] この処理を行うと IRAny になってしまう可能性があるので破壊的である。 最終成果物を生成する際にのみ、必要な処理。
IRAny
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Go に起こす部分でユニークなのは any にしなければならないという点でしかない。
情報量が落ちる処理のみが言語系に合わせる部分であり、その表現力を失わない範囲で併合することは問題がない。
その処理だけを切り出せば綺麗にまとまるのでは?
利点としては
欠点としては
具体的には3つに分解する
IRUnion
を情報量を減らさない範囲で併合する方針: 同じ型のみ合成する
IRUnion
を子として含むなら、その内容を自身に併合するIRUnion
を含まなくなるまで繰り返すIRUnion
をそれらの型にしてしまうIRPrimitive
なら条件はないのでそのまま外に出すIRSlice
ならof
同士を合成したIRUnion
を作成し、併合処理を繰り返すIRStruct
ならfield
毎にIRUnion
を作成し、併合処理を繰り返す。このとき合計 struct 数より少ないフィールドには optional を付与IRUnion
とするIRIgnore
をIRUnion
から消し去る[注意]
この処理を行うと
IRAny
になってしまう可能性があるので破壊的である。最終成果物を生成する際にのみ、必要な処理。
IRAny
が含まれるIRUnion
を常にIRAny
にするIRStruct
のフィールドがIRUnion
であった場合に限り、フィールドを optional 扱いにする役割を果す。そのIRUnion
からはIRAny
を消し去った上で併合処理を繰り返すGo のために
IRUnion
を消し去るIRIgnore
を削除されているものとする。されていなければ、することIRAny
にするThe text was updated successfully, but these errors were encountered: