Почему DatatypeSortRef и тип экземпляра этого DatatypeSortRef точно не равны? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытался

constant_var = Datatype("constant_var")
constant_var.declare("cons", ("id", IntSort()))
constant_var = constant_var.create()
c = constant_var.cons(0)
c.sort().id(c)

Но я получаю

AttributeError: у объекта 'DatatypeSortRef' нет атрибута 'id'

Между тем

constant_var.id(c)

работает просто отлично.Я могу сделать любой из

c.arg(0)
c.sort().accessor(0, 0)(c)

, но мне было интересно, почему оригинал не работает?Я хочу понять, потому что я чувствую, что пропускаю главную часть.Для справки:

"print(constant_var):" constant_var
"print(c.sort()):" constant_var
"print(constant_var.id):" id
"print(c.sort().id):" AttributeError: 'DatatypeSortRef' object has no attribute 'id'
"constant_var==c.sort():" True
"constant_var.hash()==c.sort().hash():" True
"constant_var.get_id()==c.sort().get_id():" True
"constant_var is id(c.sort()):" False
"constant_var.as_ast()==c.sort().as_ast():" False
...