-
https://github.com/golang/go/compare/master...dev.go2go
- dev.go2goブランチがmaster取り込んでいるのか知らんけど
- まぁでも1.15のベータでたし、ロックされてるか?
- わりかし、compilerの方も変更されてるな?
- テストか?
-
https://github.com/golang/go/tree/dev.go2go/src/cmd/compile/internal/types2
- type2というやつがいる
-
https://github.com/golang/go/tree/dev.go2go/src/cmd/go2go
- “go/go2go”
- はーん
- go2goパッケージ
-
ast.Field
-
ast.FuncType
-
ast.InterfaceType
- https://github.com/golang/go/compare/master...dev.go2go#diff-0ac140681fc0b25abb354eddda9ed7e2R449
- 型パラメータはast.FieldListとast.Fieldで表現される
-
ast.TypeSpec
-
関係ない修正ww
-
parameterだと分かりづらいから、type and value parameterになってる
-
https://github.com/golang/go/compare/master...dev.go2go#diff-0ac140681fc0b25abb354eddda9ed7e2R987
- えっww関係ないけど便利
- NumFieldってnilでも0を返すのか
-
ast.Walk関数も変更に伴い変わっている
- https://github.com/golang/go/compare/master...dev.go2go#diff-db3af999e936c5fa251841efbad06c94R166
- knsh14のastreeは自前walkだった気がするからtype parameterが導入された改修必要そうで頑張れって感じする
-
https://github.com/golang/go/compare/master...dev.go2go#diff-5c7b748593c74766199194bb5516efe2R1
- 日記だ
-
types.Configに AcceptMethodTypeParams が追加されているけど、メソッドにtype paramを導入する実験してんのかな?
-
types.Info
- https://github.com/golang/go/compare/master...dev.go2go#diff-3a18a42c50e80e9ac085981e9cc1956bR188
- Inferredが追加
- 型推論を行って型引数を省略したパターンのやつが来る
-
- type param と type argの違いはこれだな ** Type parameter is blueprint or placeholder for a type declared in generic. ** Type argument is actual type used to parametrize generic.
- 型の仮引数がtype pramで型の実引数がtype arg
-
推論された結果が入る
-
Walkが使えるようになっているってことはast.Inspectは使えそうだな
-
内部のassertableに引数が増えてる
-
Sum?
-
ん?Under?
-
types.IsParameterized
-
types.IsParameterizedList
- https://github.com/golang/go/compare/master...dev.go2go#diff-4e21aea682c000e99caa12a16ad89e36R257 IsParameterizedのスライス版 (edited)
-
うほっtypes.Typeのメソッドがめちゃ増えておる
-
types.Sum
- https://github.com/golang/go/compare/master...dev.go2go#diff-e2c0d36a77ccf3da4f5998ab49123d9bR338
- interface中のtype listとかを表す型(Goの型ではない)
- types.TypeParamのUnderlyingになるやつ
-
types.TypeParam
Last active
July 14, 2020 10:31
-
-
Save tenntenn/721878dc5c0f9352bd00cd75798d84de to your computer and use it in GitHub Desktop.
(*types.Interface).IsComparable
golang/go@master...dev.go2go#diff-e2c0d36a77ccf3da4f5998ab49123d9bR547
==で比較でけいるかどうかのチェック
(*types.Interface).IsConstraint
golang/go@master...dev.go2go#diff-e2c0d36a77ccf3da4f5998ab49123d9bR561
IsConstraint reports t.HasTypeList() || t.IsComparable().
なるほど。メソッドに==
が含まれるのか?
go2goパッケージの中を見ていく。
rewriteしてる部分。
https://github.com/golang/go/blob/9fe9a324c4577fb765e37b42b218612da58952d4/src/go/go2go/rewrite.go#L249:6
instantiate୦୦Print୦main୮aHex
みたいな名前で書かれる
https://github.com/golang/go/blob/9fe9a324c4577fb765e37b42b218612da58952d4/src/go/go2go/names.go#L42
instantiate୦୦Print୦main୮aHex
のa
は無害化した.
か?
https://github.com/golang/go/blob/9fe9a324c4577fb765e37b42b218612da58952d4/src/go/go2go/names.go#L64
他のパッケージから必ずインポートできるようにするため
type Importable୦ int
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(*types.Interface).HasTypeList
golang/go@master...dev.go2go#diff-e2c0d36a77ccf3da4f5998ab49123d9bR532
インタフェースが型リストを持ってるかどうか