This functionality doesn’t really change what we accept right now, because we eagerly import all of the methods of a class when we do *any* kind of lookup into the class. However, when we manage to stop doing that, this operation will become more important.
Swift SVN r23289
each instrumentation point. This ID should only be a way to
identify a point for the purposes of the current run, so it is
somewhat random.
<rdar://problem/18788357> Instrumenter should start sending unique ID information for each logged entry to playgroundlogger
Swift SVN r23286
Though the value may be statically known in some cases, that isn't good enough to do what we try to do with this information. In particular, if we invoke a class method on a MetatypeConversion, we want to dispatch to the method of the original metatype, not statically call the method of the converted type, which is what is evident in the AST. Fixes rdar://problem/18877135.
Swift SVN r23277
malformed: Compiling generates a broken swiftdeps file -> recompile everything.
mutual: Two files depend on each other -> compiling either forces a recompile.
one-way: One file depends on another
-> the latter forces the former to be recompiled.
one-way-depends-before: One file starts off depending on another
-> the latter forces the former to be recompiled, but only the first time.
one-way-depends-after: One file newly depends on another
-> the latter forces the former to be recompiled, but only once the former
has been touched.
one-way-provides-before: One file starts off providing a dependency for another
-> the former forces the latter to be recompiled, but only the first time.
one-way-provides-after: One file newly provides a dependency for another
-> the former forces the latter to be recompiled.
simple-half-dirty: Two independent files -> recompile only the dirty one.
Swift SVN r23275
This teaches the driver's Compilation to not run jobs where the base input
is older than the main output (r23221) when we're tracking dependencies.
After a compile command finishes, anything that depended on the file that
just got compiled will get scheduled.
This has the nice side effect of trying to rebuild changed files first.
The tests here aren't really testing the dependency graph yet, because the
files don't include any dependencies. I'll be adding several more test
scenarios in the next few commits.
Part of rdar://problem/15353101
Swift SVN r23273
This will be used to test dependency analysis by substituting a different
executable to use as the frontend.
For debugging purposes only.
Swift SVN r23272
The optimizer could eliminate these but isn't there yet. These instructions are valid nonetheless and should be emittable. Fixes rdar://problem/18934125.
Swift SVN r23269
The interposed line directive comment "// #line ..." prevents Swift from
associating the doc comment with the declaration. Tested, this time,
and everything!
Swift SVN r23260
Clang overzealously infects SwiftObject with the HasCXXStructors bit because it contained a struct (with trivial constructor). Manually explode the struct to avoid this.
Swift SVN r23259
optimizer freezing releases in the epilogue of functions that match to
SILArguments. This allows us to treat all such SILArguments throughout the
entire function as having a post dominating release.
<rdar://problem/18923030>
Swift SVN r23253
patterns show up in their own scopes, and the same variable name can be
reused in consecutive patterns.
<rdar://problem/15187441> Implement local variable debug scoping for variables declared in patterns
Swift SVN r23251
Fixes rdar://problem/17229052
Make it clear C_ARGV var is unsafe.
Made it impossible to set the argc/unsafeArgv outside of the stdlib.
Refactored tests to not use C_ARG{C,V}.
Made C_ARG{C,V} unavailable.
Swift SVN r23249
Also, remove calls to isSwiftReservedName in
ClangImporter::Implementation::importName(), since 'true' and 'false'
are now keywords and rdar://problem/13187570 is no longer a problem.
rdar://problem/18797808
Swift SVN r23244