Including the requirement, but not the SILFunction in default witness tables


(Michael Gottesman) #1

Hey Slava.

I just noticed that when we print out the SIL for default witness tables:

sil_default_witness_table _CVarArgAligned {
  no_default
  no_default
}

This really does not provide any information. Is it possible to include the requirement, but not the SILFunction. Then we could do this:

sil_default_witness_table _CVarArgAligned {
  method #_CVarArgAligned.foo: no_default
  method #_CVarArgAligned.bar: no_default
}

That is at least easy to read and states what the requirement is.

Michael


(Slava Pestov) #2

That’s a good idea. Default witness tables are still not 100% done and need some work. I’ll be sure to revisit the printing part too.

Slava

···

On Dec 17, 2016, at 9:52 PM, Michael Gottesman <mgottesman@apple.com> wrote:

Hey Slava.

I just noticed that when we print out the SIL for default witness tables:

sil_default_witness_table _CVarArgAligned {
no_default
no_default
}

This really does not provide any information. Is it possible to include the requirement, but not the SILFunction. Then we could do this:

sil_default_witness_table _CVarArgAligned {
method #_CVarArgAligned.foo: no_default
method #_CVarArgAligned.bar: no_default
}

That is at least easy to read and states what the requirement is.

Michael


(Michael Gottesman) #3

Awesome!

Michael

···

On Dec 18, 2016, at 12:26 AM, Slava Pestov <spestov@apple.com> wrote:

That’s a good idea. Default witness tables are still not 100% done and need some work. I’ll be sure to revisit the printing part too.

Slava

On Dec 17, 2016, at 9:52 PM, Michael Gottesman <mgottesman@apple.com> wrote:

Hey Slava.

I just noticed that when we print out the SIL for default witness tables:

sil_default_witness_table _CVarArgAligned {
no_default
no_default
}

This really does not provide any information. Is it possible to include the requirement, but not the SILFunction. Then we could do this:

sil_default_witness_table _CVarArgAligned {
method #_CVarArgAligned.foo: no_default
method #_CVarArgAligned.bar: no_default
}

That is at least easy to read and states what the requirement is.

Michael