swift
[SymbolGraphGen] Emit "functionSignature" info for initializers and subscripts
#70207
Merged

[SymbolGraphGen] Emit "functionSignature" info for initializers and subscripts #70207

d-ronnqvist
d-ronnqvist1 year ago

This makes the Swift symbol graph generator emit "functionSignature" information for initializers and subscripts, just like it does for functions.

Resolves rdar://111072228.

d-ronnqvist Emit "functionSignature" for initializers and subscripts
0f6173ab
d-ronnqvist d-ronnqvist requested a review from QuietMisdreavus QuietMisdreavus 1 year ago
d-ronnqvist
d-ronnqvist commented on 2023-12-04
lib/SymbolGraphGen/Symbol.h
6969 void serializeGenericParam(const swift::GenericTypeParamType &Param,
7070 llvm::json::OStream &OS) const;
7171
72
void serializeParameterList(const swift::ParameterList *ParamList,
d-ronnqvist1 year ago

I wanted for this to be an invisible change but if I didn't declare it here I got an error

Symbol.cpp:409:14: error: out-of-line definition of 'serializeParameterList' does not match any declaration in 'swift::symbolgraphgen::Symbol'

Is there a way to hide this API?

QuietMisdreavus1 year ago

If you don't want to add it to the class, you could write it as a static function inside the file (with extra parameters for not being a class method any more), or you could write it like a closure inside serializeFunctionSignature:

auto serializeParameterList = [&](const swift::ParameterList *ParamList) {
  // ...
}

...on the other hand, this method is already considered class-private since it was declared here, so i don't consider it a big deal to have added it to the header like this.

d-ronnqvist1 year ago

Thanks! That was exactly what I was looking for.

QuietMisdreavus
QuietMisdreavus1 year ago

@swift-ci Please smoke test

QuietMisdreavus
QuietMisdreavus approved these changes on 2023-12-19
QuietMisdreavus1 year ago

Looks good; you can take or leave the one comment here.

d-ronnqvist Move serializeParameterList to a closure
be9b4861
d-ronnqvist Update test to skip decl in function signature
d3006f26
d-ronnqvist d-ronnqvist force pushed from 2f437661 to d3006f26 1 year ago
d-ronnqvist
d-ronnqvist1 year ago

@swift-ci please smoke test

QuietMisdreavus QuietMisdreavus merged 24d54a86 into main 1 year ago
d-ronnqvist d-ronnqvist deleted the emit-function-signature-for-init-and-subscripts branch 1 year ago

Login to write a write a comment.

Login via GitHub

Reviewers
Assignees
No one assigned
Labels
Milestone