Chris Lattner
17b11e9bbd
implement parsing, AST, and LangRef support for 'plus' methods. Dot syntax will need some work though to actually use them.
...
Swift SVN r949
2011-12-21 23:21:58 +00:00
Chris Lattner
eef2f69637
improve AST modeling of dot syntax calls to follow the syntactic structure instead of being weird and broken and losing source loc info.
...
Swift SVN r938
2011-12-15 00:52:58 +00:00
John McCall
8a8f297bde
Basic resilience query.
...
Swift SVN r937
2011-12-15 00:45:31 +00:00
Chris Lattner
6315b94e6b
split out integer types to their own subclass of BuiltinType.
...
Swift SVN r932
2011-12-14 21:49:08 +00:00
Chris Lattner
2bb9e992e4
fix typo
...
Swift SVN r926
2011-12-14 20:30:21 +00:00
Chris Lattner
5f1f4d8ce9
simplify code in Parser::actOnOneOfType now that oneof's always have names.
...
Give OneOfType an ivar for its TypeAlias. It already knew its DeclContext.
Swift SVN r923
2011-12-13 01:41:19 +00:00
John McCall
a1f7eefba3
Extract out decl attributes into a separately-allocated structure.
...
Swift SVN r920
2011-12-10 00:39:10 +00:00
Chris Lattner
a1b7419a36
remove support for looking up global names with dot syntax. "x.y" != "y(x)" now.
...
Swift SVN r917
2011-12-07 00:59:09 +00:00
Chris Lattner
ff130c602e
implement dot lookup in extensions!
...
Swift SVN r913
2011-12-07 00:11:01 +00:00
Chris Lattner
10b29da87d
fix formating in -ast-dump
...
Swift SVN r910
2011-12-06 21:48:11 +00:00
Chris Lattner
a23f19af78
remove redundant qualification
...
Swift SVN r907
2011-12-06 02:11:08 +00:00
Chris Lattner
900d45f3c0
implement a Module::lookupExtensions method to find all the extensions for a
...
given type in a given module. This depends on llvm r145898.
Swift SVN r906
2011-12-06 02:07:13 +00:00
Chris Lattner
5da9f8ade2
add TinyPtrVector to LLVM.h
...
Swift SVN r905
2011-12-06 01:46:23 +00:00
Chris Lattner
212b56afec
actually, the ASTStage should be on Translation unit. There can be multiple modules in a context and they can all be in different phases of translation.
...
Swift SVN r902
2011-12-06 00:51:56 +00:00
Chris Lattner
eaa6fcb12a
move prototype for the verifier into Subsystems.
...
Swift SVN r901
2011-12-06 00:34:16 +00:00
Chris Lattner
02c9d9a3f1
Make the AST "phase" part of ASTContext, this is generally useful for assertions.
...
Swift SVN r900
2011-12-06 00:32:00 +00:00
Chris Lattner
d9c15ebb9a
make ExtensionDecl be a DeclContext, install members into it properly.
...
Swift SVN r896
2011-12-05 23:22:04 +00:00
Chris Lattner
3d8fe587c1
the world has moved to using getters, conform.
...
Swift SVN r894
2011-11-29 22:47:23 +00:00
Chris Lattner
d666cc4fda
define ExtensionDecl.
...
Swift SVN r892
2011-11-29 22:40:24 +00:00
John McCall
94021a90be
Finish getterizing Decl.h.
...
Swift SVN r889
2011-11-18 01:29:31 +00:00
John McCall
32736ea2ab
Rename hasSingleElement to isTransparentType to better
...
capture what's being tested. This also makes IR gen
correctly avoid a discriminator for a non-transparent
single-element oneof.
Swift SVN r887
2011-11-18 01:17:53 +00:00
John McCall
b700f171a2
More getters.
...
Swift SVN r886
2011-11-18 01:10:03 +00:00
John McCall
d716f82984
Getterize ValueDecl.
...
Swift SVN r885
2011-11-18 01:04:12 +00:00
John McCall
9079154ded
Getterize TypeAliasDecl.
...
Swift SVN r884
2011-11-18 00:48:14 +00:00
John McCall
50fb0d63f6
More incremental getterization.
...
.w
Swift SVN r883
2011-11-18 00:29:15 +00:00
John McCall
d74f17259c
Incremental getterization of Decl.h.
...
Swift SVN r882
2011-11-18 00:17:20 +00:00
John McCall
de3c3ff04d
Build an implicit expression to record the conversion
...
of a oneof to its underlying type. Much better.
Swift SVN r881
2011-11-17 11:38:05 +00:00
John McCall
1a948e25a1
We also make TupleElementExprs for trivial oneofs.
...
Swift SVN r879
2011-11-17 10:18:15 +00:00
John McCall
28f27b25d7
Move the source-range checking out to somewhere that runs
...
unconditionally so that we don't need to handle delegation
in the checkers just to preserve the standard checks.
Verify the invariants of a TupleElementExpr.
Swift SVN r874
2011-11-17 09:30:00 +00:00
John McCall
91b0675c60
Improve the source-range verifier by introducing layering
...
violations. Yay, layering violations!
Swift SVN r871
2011-11-17 05:04:37 +00:00
Chris Lattner
7e96d0d53e
embrace macro metaprogramming for decls.
...
Swift SVN r867
2011-11-10 22:08:46 +00:00
Chris Lattner
ee05c22fdd
just a ridiculous micro optimization
...
Swift SVN r863
2011-11-10 19:26:29 +00:00
Doug Gregor
8c8e8f646b
Introduce a verifier that ensures that the source range of an expression or statement covers the source ranges of its children. Encountered the bugs addressed in my previous commit.
...
Swift SVN r862
2011-11-10 17:27:01 +00:00
Doug Gregor
55f635a0c0
Introduce an additional "context" parameter to the expression and
...
statement walk callback functions, where we can stash additional
information without breaking all of the callers.
At present, the only information in the context is the parent
statement or expression.
Swift SVN r860
2011-11-10 17:02:43 +00:00
Doug Gregor
2e49b79617
Rename WalkOrder.h to Walk.h, and introduce typedefs for the function
...
types of the expression and statement walker into it, so we don't end
up typing the same darned things over and over again.
Swift SVN r859
2011-11-10 16:36:56 +00:00
Doug Gregor
a8de31b0e0
Implement Stmt::getSourceRange() along with proper implementations for
...
each of the subclasses.
Swift SVN r857
2011-11-10 00:46:07 +00:00
Doug Gregor
9995a39aae
Switch Expr::getLoc() over to an implementation that defaults to the
...
starting location of the expression, but can be overridden by
subclasses.
Swift SVN r856
2011-11-10 00:34:40 +00:00
Doug Gregor
0223f3edf1
Implement Expr::getSourceRange() and introduce proper support for this
...
function into all of the expression nodes. Re-implement
Expr::getStartLoc() in terms of this function, and add it's brother
Expr::getEndLoc(), removing the specialized implementations.
Clean up the source ranges of implicitly-created tuple expressions in
the process.
Swift SVN r855
2011-11-10 00:25:48 +00:00
Doug Gregor
fc183b9cc3
Decouple the lexer from the ASTContext and specific BufferID. They
...
aren't needed for the lexer proper (which just needs a buffer to dig
through). Also, make it possible to suppress lexer diagnostics merely
by not giving it a diagnostic engine to work with.
Swift SVN r852
2011-11-09 21:49:40 +00:00
Doug Gregor
725298a2da
Introduce a DiagnosticConsumer abstract interface that is used to
...
actually render emitted diagnostics. This is both a useful
generalization (we expect to have a number of other
DiagnosticConsumers down the road, as Clang does) and is also
important now to avoid a layering violation when adjusting the source
location at the end of a SourceRange to the end of the token.
Swift SVN r850
2011-11-09 18:59:39 +00:00
Doug Gregor
cd7a21de83
Introduce support for adding source ranges to diagnostics.
...
We don't yet properly perform the SourceRange -> llvm::SMRange mapping.
Swift SVN r847
2011-11-09 17:53:30 +00:00
Doug Gregor
e12215b1be
Introduce InFlightDiagnostic, a move-only class that will be used to emit "extra" information (ranges, Fix-Its, etc.) for a diagnostic. It's quite similar in design to Clang's DiagnosticBuilder, but slightly cleaner/more restrictive.
...
Note that I had to re-implement llvm::Optional, since it lamely requires a default constructor. At some point, I'll push a proper implementation back to LLVM.
Swift SVN r845
2011-11-09 17:19:30 +00:00
Chris Lattner
9e9f421f1a
getAliasType() doesn't need an ASTContext argument anymore.
...
Swift SVN r816
2011-11-01 18:37:05 +00:00
Chris Lattner
2dcaed352b
tidy up
...
Swift SVN r812
2011-11-01 06:47:50 +00:00
Chris Lattner
164ab0ffee
move lookupTypeName out to Module::lookupGlobalType and have it look in the current
...
module as well for consistency.
Swift SVN r811
2011-11-01 06:27:24 +00:00
Chris Lattner
e0a18996cd
move lookupGlobalValue into Module, making it accessable to all of sema.
...
Swift SVN r810
2011-11-01 06:22:44 +00:00
Chris Lattner
5d8d0fd2f6
Have the name binder publish the list of imported modules into the TranslationUnit,
...
making it a real part of the AST. Also, rework TUModuleCache to do its computation
when it is constructed, instead of trying in each query.
Swift SVN r809
2011-11-01 06:19:36 +00:00
Chris Lattner
1e1755ea27
don't forget to svn add new files.
...
Swift SVN r803
2011-11-01 05:24:12 +00:00
Chris Lattner
e3b53c3b15
move the module-level name lookup stuff out of NameBinding.cpp into the
...
Module class. Add a new Module.cpp file to implement this (along with
the existing caching strategy, if you're curious). This eliminates the
parallel 'ModuleProvider' heirarchy.
Swift SVN r802
2011-11-01 05:19:35 +00:00
Chris Lattner
0ca79b1075
rename ASTContext::BuiltinModule -> TheBuiltinModule for consistency with
...
the other ASTContext members.
Swift SVN r799
2011-11-01 04:18:23 +00:00