Pavel Yaskevich
4f59538eba
[Sema] InitAccessors: Diagnose situations when memberwise init cannot be synthesized
...
If some of the properties with init accessors have out of order
accesses diagnose that while checking whether memberwise init
could be synthesized.
2023-06-13 10:58:50 -07:00
Pavel Yaskevich
ddcfe01ba5
[Sema/SILGen] InitAccessors: Emit intersecting init accessor calls in memberwise init
...
If init accessor initialize the same properties, let's emit them
in sequence and emit `destroy_addr` in-between to make sure that
there is no double initialization.
2023-06-13 10:58:50 -07:00
Holly Borla
cd752cca22
[NameLookup] Plumb source location arguments through all name lookup APIs.
...
This source location will be used to determine whether to add a name lookup
option to exclude macro expansions when the name lookup request is constructed.
Currently, the source location argument is unused.
2023-06-11 23:09:47 -07:00
Pavel Yaskevich
8c54d3d560
[Sema] InitAccessors: Don't synthesize default memberwise arg for init accessor initializations
...
Default arguments for `init accessors` are not fully supported
at the moment, so we shouldn't attempt to synthesize them in
Sema just to crash during linking.
2023-06-08 12:13:55 -07:00
Pavel Yaskevich
ad95e911a8
[Sema/SIL] InitAccessors: Incorporate init accessors into memberwise initializers
...
Properties with init accessors are used in place of properties they
are supposed to initialize in order of stored properties.
2023-06-06 18:59:46 -07:00
Allan Shortlidge
aef5e42457
Sema: Inherit SPI groups when synthesizing modify accessor.
...
Resolves rdar://108069565
2023-05-01 15:34:08 -07:00
Becca Royal-Gordon
e8c43bb168
Fix @objcImpl subclass init visibility computation
...
When writing an @objc subclass of an @objcImplementation class, implicit initializers in the subclass were treated as overriding the *implementation decl*, not the *interface decl*, of the initializer in the superclass. This caused Swift to incorrectly compute the visibility of the superclass initializer and omit an `override` keyword from the module interface when one would definitely be necessary.
Correct this oversight by looking up the interface decl matching the superclass implementation in `collectNonOveriddenSuperclassInits()`.
2023-03-25 14:53:29 -07:00
Becca Royal-Gordon
7d93b7543d
Merge pull request #63534 from beccadax/default-is-not-init-stars
...
Make objcImpl classes derive inherited inits
2023-02-09 12:02:44 -08:00
Becca Royal-Gordon
31d8cadcd7
Make objcImpl classes derive inherited inits
...
A class that uses @objcImplementation but does not explicitly declare any designated initializers previously did not override the superclass initializers, so its stored properties would not be initialized. Opt these classes into that logic and adjust it to add the initializers to the @objcImplementation extension instead of the ClassDecl itself.
Fixes rdar://105008242.
2023-02-08 15:58:17 -08:00
Pavel Yaskevich
e2b22d9f62
[AST/Sema] Remove TypeWrapper feature functionality
2023-02-08 00:16:00 -08:00
Pavel Yaskevich
0987eff828
[Sema] TypeWrappers: Availability of init(storageWrapper:) should match that of $Storage
2023-01-04 16:04:28 -08:00
Pavel Yaskevich
ed2e07e0a1
[Sema] TypeWrappers: If type wrapper comes from .swiftinterface use synthesized decls
...
Swift interfaces have both attribute and all publicly accessible
synthesized members, which means that the synthesis needs to be
taught to lookup existing synthesized declarations for `$storage`,
`$Storage`, and `init(storageWrapper:)` if request comes for
declaration that belongs to a Swift interface file.
2023-01-04 16:04:28 -08:00
Pavel Yaskevich
2ce48e0b7d
[AST/Sema] TypeWrappers: Augment GetTypeWrapper request to produce more info
...
The request is updated to return attribute, wrapper declaration,
the declaration its attached to and whether or not it has been
inferred (opposite to being declared directly).
2022-12-14 17:50:22 -08:00
Allan Shortlidge
abdc4d9112
SILGen: Use has_symbol instruction in SILGen.
2022-11-16 16:07:29 -08:00
Pavel Yaskevich
e762d20568
Merge pull request #61982 from xedin/type-wrappers-on-protocols
...
[Sema] TypeWrappers: Allow type wrappers on protocols and inference from them
2022-11-14 12:46:48 -08:00
Allan Shortlidge
7782f862c0
Sema: Avoid adding nonisolated twice to synthesized Hashable methods.
...
https://github.com/apple/swift/pull/42041 introduced a centralized mechanism for adding the `nonisolated` attribute to synthesized decls but did not clean up the existing code that was already doing so for `Hashable` conformances.
Resolves rdar://102106591
2022-11-08 18:35:27 -08:00
Pavel Yaskevich
db4b6a5c0f
[AST/Sema] TypeWrappers: Implement type wrappers on protocols
...
Adding a type wrapper attribute on a protocol does two things:
- Synthesizes `associatedtype $Storage` declaration with `internal` access
- Synthesizes `var $storage: <#Wrapper#><Self, Self.$Storage>` value requirement
2022-11-07 14:55:05 -08:00
Becca Royal-Gordon
4fa774d839
Allow ObjC superclass to disable init inheritance
...
ObjC classes which have only factory and convenience initializers cannot allow their convenience inits to be inherited. To provide these classes with a reliable opt-out, tweak support for @_hasMissingDesignatedInitializers so that it affects ObjC classes even if they’re in the same module as one another.
Fixes rdar://48511013.
2022-11-02 17:12:53 -07:00
Pavel Yaskevich
5eafcf66d7
[AST/Sema] TypeWrapper: Implement synthesis of init(storageWrapper:) initializer
2022-10-21 20:04:01 +01:00
Pavel Yaskevich
2ae0cb802a
[AST/Sema] TypeWrappers: Add a request skeleton to synthesize init(storageWrapper: <Wrapper>)
...
If there are no type wrapper ignored stored properties, the
compiler would synthesize a special public initializer that
allows to initialize a wrapped type by providing a fully
initialized wrapper instance.
2022-10-21 20:04:01 +01:00
Pavel Yaskevich
b800b0b81b
[CodeSynthesis] TypeWrappers: Add "memberwise" to implicit constructor kind
2022-10-21 20:04:01 +01:00
Pavel Yaskevich
4d5cf77fcd
[Sema] TypeWrappers: Synthesize body of a memberwise initializer lazily
...
Make sure that memberwise initializer body doesn't force
other synthesis by emitting it lazily.
Resolves: rdar://99884355
2022-10-21 20:04:01 +01:00
Pavel Yaskevich
70b0cd523a
[AST/Sema] TypeWrappers/NFC: Rename type wrapper storage property to $storage
2022-10-21 20:04:00 +01:00
Pavel Yaskevich
5c8c008c8e
Merge pull request #61479 from xedin/type-wrappers-init-values-in-user-defined-inits
...
[SILGen] TypeWrappers: Support default values in user-defined initializers
2022-10-21 08:48:35 +01:00
Hamish Knight
b645e63ce5
[AST] NFC: Refactor GenericTypeParamDecl construction
...
Add distinct overloads for the parser,
deserialization and code synthesis.
2022-10-14 15:40:12 +01:00
Allan Shortlidge
182cc8de37
SILGen: Implement if #_hasSymbol() conditions.
...
Emit a call to a helper function that determines whether the symbols associated with the declaration referenced in the `#_hasSymbol(...)` condition are non-null at runtime. An upcoming change will emit a definition for this function during IRGen.
Resolves rdar://100130015
2022-10-13 21:00:24 -07:00
Holly Borla
c4b946195e
[AST] Replace the "type sequence" terminology with "parameter pack".
2022-10-10 16:28:13 -07:00
Pavel Yaskevich
24b2bcae09
[Sema] TypeWrappers: Subsume property init before injecting it into $Storage
...
It was done in `maybeAddTypeWrapperDefaultArg` before because
user-defined initializers weren't supported but now property
initializers need to be subsumed earlier to make sure that
SILGen doesn't try to emit them into user-defined initializers.
2022-10-07 17:35:47 -07:00
Pavel Yaskevich
92fbb3ebf3
[AST/Sema] TypeWrappers: Rename wrapped type memberwise initializer entry point
2022-09-29 20:50:37 -07:00
Pavel Yaskevich
53bcf9ff67
[Sema] TypeWrappers: Implement @typeWrapperIgnored checking
2022-09-09 23:52:40 -07:00
Pavel Yaskevich
6d2edc2789
[Sema] TypeWrappers: Disable memberwise synthesis if type has designated init
...
If type has any user-defined designated initializers, let's not
synthesize a special memberwise initializer.
2022-09-02 17:58:48 -07:00
Pavel Yaskevich
f7b366c669
[Sema] TypeWrappers: Don't try to manage compiler synthesized properties
...
Properties like `unownedExecutor` that are implicitly injected into
a type should not be managed by a type wrapper.
2022-08-30 16:47:10 -07:00
Pavel Yaskevich
347e85ddc4
[Sema] TypeWrappers: Add unamanged stored properties to the synthesized memberwise init
...
If a stored property would be in a default memberwise initializer
it would be added to the `init` synthesized for a type wrapped type
as well i.e. a `let` property without a default.
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
5a73b48599
[Sema] CodeSynthesis: Extract logic to synthesize a parameter for memberwise init
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
0500f35537
[Sema] TypeWrappers: Synthesize init parameters for property wrapped members
...
Since properties with property wrappers are not supported, default
init synthesis needs to handle them as well by using correct interface
type depending on outer wrapper capabilities and setting correct
default expression.
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
20a52d2f97
[Sema] TypeWrappers/NFC: Move initializer synthesis into a request
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
39b1566240
[Sema] TypeWrappers: convert variable init expr into initializer default
...
All of the stored properties are wrapped which means that their
initializers are subsummed and moved to the synthesized `init`
as default arguments.
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
39f5b69bce
[TypeChecker] Synthesize initializer for a type wrapped declaration
...
Synthesize an `init` declaration which is going to initialize
type wrapper instance property `$_storage` via user provided
values for all stored properties.
2022-08-26 12:25:22 -07:00
Pavel Yaskevich
0711d774b7
[Sema] Don't attempt init synthesis for type wrapped types
...
Compiler cannot synthesize regular memberwise or default
initializers for type wrapped types because stored properties
of such a type cannot be accessed directly.
A special initializer would be synthesized instead, it is going
to initialize `$_storage` variable and handle default initialization
of stored properties.
2022-08-26 12:25:22 -07:00
Evan Wilde
2373421043
[Windows]: explicitly set closure captures
...
MSVC isn't seeing that `CheckDefaultInitializer` is declared and being
implicitly captured by reference by the closure going into the
`forEachVariable`.
Capturing `HasStorage` and `CheckDefaultInitializer` explicitly.
2022-08-19 09:23:19 -07:00
Hamish Knight
6b9bcf3935
[AST] Change DotSyntaxCallExpr to take an Argument base
...
This allows us to more easily propagate inout
information to it, which will become a necessity
once InOutExpr is removed.
2022-08-08 15:11:00 +01:00
Slava Pestov
fcf79485d6
Sema: Tighten up invariants for createDesignatedInitOverride()
2022-07-29 12:01:26 -04:00
Slava Pestov
c236c30923
Sema: Refactor away computeDesignatedInitOverrideSignature()
2022-07-29 12:01:26 -04:00
Slava Pestov
2dfb7dc48f
Sema: Use getOverrideGenericSignature() in computeDesignatedInitOverrideSignature()
2022-07-29 12:01:26 -04:00
Slava Pestov
cb05ea68ce
Sema: Use SubstitutionMap::getOverrideSubstitutions() in computeDesignatedInitOverrideSignature()
2022-07-29 12:01:26 -04:00
Slava Pestov
f8fa2c01f6
Sema: Refactor computeDesignatedInitOverrideSignature()
2022-07-29 12:01:05 -04:00
Slava Pestov
4538b1bb3e
AST: Remove derivedSubs parameter from getOverrideSubstitutions()
...
We can apply a substitution map afterwards if needed.
2022-07-29 12:01:05 -04:00
Slava Pestov
4a124f10ae
Sema: Remove unused addFixedLayoutAttr() entrypoint
2022-07-29 11:59:17 -04:00
Josh Soref
4c77c59269
Spelling sema ( #42474 )
...
* spelling: accessibility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: accessories
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: adjustments
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: all
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: ambiguous
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: arguments
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: assignment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: associated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: assumes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: auxiliary
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: availability
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: available
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: belongs
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: checking
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: clazz
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compatibility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: completely
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: completion
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: complicated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: conformance
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: constrained
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: constraint
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: contextual
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: conversion
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: convertible
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: couldn't
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: declaration
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: defaultable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dependent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: depending
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: describe
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: diagnostic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: diagnostics
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: existential
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: expects
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: explicit
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: explicitly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: expression
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: first
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: font
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: forward
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: generation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: generic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: given
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: global
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: guarantee
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: happened
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: hierarchy
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: identical
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: immediately
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: implicit
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: indicates
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: inferred
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initializer
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: integrity
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: interpolation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: introducing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: involved
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: just
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: like
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: likewise
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: mismatch
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: missing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: more
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: necessarily
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: noescape
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: nonetheless
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: occurrences
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: operators
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: optional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: otherwise
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: outside
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: overload
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: overridden
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: override
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: parameter
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: parameters
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: penalize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: platforms
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: precedence
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: preemptively
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: preliminary
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: preserve
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: propagate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: propagated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: qualifier
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: question
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: really
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: received
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: references
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: replaceable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: replacement
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: representable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: representative
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: requirement
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: requires
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: resolved
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: retrieve
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: rewriting
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: satisfied
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: semantics
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: signature
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: similar
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: simplest
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: simplification
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: solver
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: struct
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: structurally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: success
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: sure
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: symmetric
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: syntactically
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: target
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: that
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: themselves
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: these
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: this
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: transform
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: transparent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: tread
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: truncation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: type
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: unconstructable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: universally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: unknown
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: unwrapped
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: versioned
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: visible
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: where
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-20 15:12:46 -07:00
Anthony Latsis
4bbad02bf2
[NFC] Supplant RequirementCheckResult with CheckGenericArgumentsResult::Kind
2022-03-28 22:55:02 +03:00