Skip to content

[pull] swiftwasm from master #1087

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 29 commits into from
May 24, 2020
Merged

[pull] swiftwasm from master #1087

merged 29 commits into from
May 24, 2020

Conversation

pull[bot]
Copy link

@pull pull bot commented May 24, 2020

See Commits and Changes for more details.


Created by pull[bot]. Want to support this open source service? Please star it : )

compnerd and others added 29 commits May 1, 2020 13:56
Rather than defaulting both of these to true, enable gold by default
only on ELFish targets, and enable LLD by default for Windows on
non-Windows hosts.
Add overloads of `removeShadowedDecls` that deal
with operator and precedencegroup decls, and
template the existing shadowing logic such that it
can process them.
For now disabled by default, but once we get a new
language mode, we should flip it on by default.
We don't need to look at re-exports when resolving
cross references. Luckily the old lookup logic
didn't, but the new logic will. Therefore switch
it over to calling the appropriate request for a
direct operator lookup. In addition, return a
deserialization error instead of silently
returning nullptr if the lookup fails.
Re-implement operator and precedencegroup decl
lookup to use `namelookup::getAllImports` and
existing decl shadowing logic. This allows us to
find operator decls through `@_exported` imports,
prefer operator decls defined in the same module
over imported decls, and fixes a couple of other
subtle issues.

Because this new implementation is technically
source breaking, as we can find multiple results
where we used to only find one result, it's placed
behind the new Frontend flag
`-enable-new-operator-lookup` (with the aim of
enabling it by default when we get a new language
mode).

However the new logic will always be used if the
result is unambiguous. This means that e.g
`@_exported` operators will be instantly available
as long as there's only one candidate. If multiple
candidates are found, we fall back to the old
logic.

Resolves SR-12132.
Resolves rdar://59198796.
Previously we permitted operator redeclarations
across files as the user could shadow imported
operator decls on a per-file basis, and we would
prefer an imported operator decl over one in
another file.

However with the new operator lookup
implementation, operators in the current module
always shadow imported decls. As such, we should
start diagnosing cross-file redeclarations when
the new lookup logic is enabled.

Resolves rdar://48731166
"newMember" → "member"
Adjust the test to accommodate environments which do indirect imports,
which use the singleton strategy, relying on the runtime initialization
of fields which are imported.
Split lines as they has only one expectation.
It helps to review changes of diagnostics in future.
Remove three ObjC metadata fields from non-ObjC runtime
Windows had moved to C++14 much earlier than the rest of Swift.  This
was required in order to deal with the Windows SDK headers.  Now that
the project has fully moved to C++14, remove the unnecessary settings
for Windows.
…ation

[Sema][NFC]: Split test expectation to lines in `object_literals`
[Gardening] Fix typo in documentation of SetAlgebra.remove(_:)
It bakes current behavior for reviewing changes in future.
Adding new cases to a non-exhaustive enum type isn't source-breaking
since it only triggers a warning.

rdar://63464929
build: cleanup some unnecessary settings for Windows
…glitters-is-gold

build: default the lld/gold enabling as per reality
[ConstraintSystem] [NFC] add tests for label matching diagnostics
API checker: only diagnose adding enum cases to exhaustive enums
@pull pull bot merged commit 6447f71 into swiftwasm May 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.