apply Metadata
fun Node.applyMetadata(provider: MetadataProvider?, name: CharSequence? = EMPTY_NAME, rawNode: Any? = null, codeOverride: String? = null, localNameOnly: Boolean = false, defaultNamespace: Name? = null)
Applies various metadata on this Node, based on the kind of provider in provider. This can include:
Setting Node.code and Node.location, if a CodeAndLocationProvider is given
Setting Node.location, if a LanguageProvider is given
Setting Node.scope. if a ScopeProvider is given
Setting Node.isInferred, if an IsInferredProvider is given
Note, that one provider can implement multiple provider interfaces. Additionally, if codeOverride is specified, the supplied source code is used to override anything from the provider.