|
@@ -12,6 +12,7 @@ import (
|
|
|
func (a *basic) Equals(x ComplexType) bool {
|
|
|
switch b := x.(type) {
|
|
|
case *basic:
|
|
|
+ fmt.Println("basic comp", a.Qualident(), ",", b.Qualident())
|
|
|
return a == b
|
|
|
default:
|
|
|
halt.As(100, reflect.TypeOf(b))
|
|
@@ -22,6 +23,7 @@ func (a *basic) Equals(x ComplexType) bool {
|
|
|
func (a *arr) Equals(x ComplexType) bool {
|
|
|
switch b := x.(type) {
|
|
|
case *arr:
|
|
|
+ fmt.Println("arr comp", ":", a.Qualident(), ",", b.Qualident())
|
|
|
return a == b
|
|
|
default:
|
|
|
halt.As(100, reflect.TypeOf(b))
|
|
@@ -32,6 +34,7 @@ func (a *arr) Equals(x ComplexType) bool {
|
|
|
func (a *dyn) Equals(x ComplexType) bool {
|
|
|
switch b := x.(type) {
|
|
|
case *dyn:
|
|
|
+ fmt.Println("dyn comp", a.Qualident(), ",", b.Qualident())
|
|
|
return a == b
|
|
|
default:
|
|
|
halt.As(100, reflect.TypeOf(b))
|
|
@@ -42,7 +45,10 @@ func (a *dyn) Equals(x ComplexType) bool {
|
|
|
func (a *rec) Equals(x ComplexType) bool {
|
|
|
switch b := x.(type) {
|
|
|
case *rec:
|
|
|
+ fmt.Println("rec comp", a.Name(), ":", a.Qualident(), ",", b.Name(), ":", b.Qualident())
|
|
|
return a == b
|
|
|
+ case *ptr:
|
|
|
+ return false
|
|
|
default:
|
|
|
halt.As(100, reflect.TypeOf(b))
|
|
|
}
|
|
@@ -52,8 +58,10 @@ func (a *rec) Equals(x ComplexType) bool {
|
|
|
func (a *ptr) Equals(x ComplexType) bool {
|
|
|
switch b := x.(type) {
|
|
|
case *ptr:
|
|
|
- fmt.Println(a.Name(), ":", a.Qualident(), ",", b.Name(), ":", b.Qualident())
|
|
|
- return a == b
|
|
|
+ fmt.Println("pointer comp", a.Name(), ":", a.Qualident(), ",", b.Name(), ":", b.Qualident())
|
|
|
+ return a.Qualident() == b.Qualident()
|
|
|
+ case *rec:
|
|
|
+ return false
|
|
|
default:
|
|
|
halt.As(100, reflect.TypeOf(b))
|
|
|
}
|