John McCall
2b65cf22d1
Make 'this' implicitly [byref] when the container type does
...
not have reference semantics. Deciding whether the container
type has reference semantics requires us to perform
some amount of limited name-binding and type-checking first,
which introduces a few complexities.
Also, fix a bug in uncurried call emission.
Methods work now.
Swift SVN r1112
2012-02-11 07:37:57 +00:00
John McCall
7b29a420f6
Design and implement the [byref] attribute, checking that
...
it doesn't appear in places it shouldn't. The only limits on
this checking right now is the inadequacy of location information
for types, which is something we ought to fix.
Fix type-checking of byref applications. Fix IR generation
of byref variables. Whole lotta fixin' goin' on.
But hey, byref calls work.
Swift SVN r1111
2012-02-10 09:42:50 +00:00
John McCall
ca70a29972
Missing files! Sorry!
...
Swift SVN r1110
2012-02-08 00:54:11 +00:00
John McCall
5a3567ff01
Diagnose attempts to declare operators with anything
...
except 'func'. It doesn't make any sense to me for operators
to have variable semantics, and it's unnecessary complexity
in the type-checker.
Swift SVN r1108
2012-02-06 22:54:32 +00:00
John McCall
d0f4d86f3e
Use LValueType everywhere instead of the l-value value kind.
...
Kill off TypeJudgement. Various fixes and improvements.
Swift SVN r1107
2012-02-06 22:47:08 +00:00
John McCall
76ad8fff02
Add more parentheses to Types.h.
...
Swift SVN r1103
2012-01-31 04:32:37 +00:00
John McCall
e66c13cfe7
Change the 'walk' APIs to use virtual function dispatch
...
instead .
1,2d
1i
Change the 'walk' APIs to use virtual dispatch instead of
blocks. This makes it much easier to thread information
through the API, as well to extend the API to handle
recursive visiting of other structures (e.g., Decls
and Patterns).
Swift SVN r1101
2012-01-26 04:31:38 +00:00
John McCall
ce7780af04
I don't think we're really getting anything out of ArgDecl
...
at the moment. We can put it back if I'm wrong.
Swift SVN r1100
2012-01-26 02:08:52 +00:00
John McCall
16f8b2e656
Revise the language design for function argument clause syntax.
...
A function argument clause is now one or more patterns (which
must be parenthesized and explicitly type all positions) not
separated by arrows; the first arrow then separates off the
return type.
Revisions to language reference forthcoming.
Swift SVN r1099
2012-01-26 01:25:26 +00:00
John McCall
d93cd143c5
Use llvm_unreachable to permit optimization based on
...
this case being invalid.
Swift SVN r1098
2012-01-26 00:10:29 +00:00
Chris Lattner
bab9ca384c
switch TupleExpr to use MutableArrayRef.
...
Swift SVN r1090
2012-01-19 06:54:43 +00:00
Chris Lattner
4ef27b82e4
simplify some code to use a foreach loop.
...
Swift SVN r1089
2012-01-19 06:41:49 +00:00
Chris Lattner
599e4b2528
switch to using the new llvm::MutableArrayRef class, this requires llvm r148463
...
Swift SVN r1088
2012-01-19 06:39:07 +00:00
Chris Lattner
7c36780e35
sink the 'Init' field from ValueDecl down to VarDecl (as Init) and FuncDecl (as Body),
...
liberating the other ValueDecl's from its baggage.
Swift SVN r1079
2012-01-18 07:34:54 +00:00
Chris Lattner
da630066cb
increase specificity of accessors.
...
Swift SVN r1078
2012-01-18 07:30:42 +00:00
Chris Lattner
e3298d8b98
rearrange some code to simplify it.
...
Swift SVN r1077
2012-01-18 07:26:47 +00:00
Chris Lattner
23a7fb46c1
now that name binding doesn't have weird "only kill some subtrees" behavior, switch it over to a standard walk.
...
Swift SVN r1076
2012-01-18 07:25:28 +00:00
Chris Lattner
0587519685
remove some bogus code now that name binding doesn't kill subtrees. Spare the forest!
...
Swift SVN r1075
2012-01-18 07:22:22 +00:00
Chris Lattner
ed7062c452
instead of having name binding kill off entire subtrees that contain invalid variable uses, have it turn the ivalid use into an ErrorExpr.
...
Swift SVN r1074
2012-01-18 07:21:25 +00:00
Chris Lattner
584ed537fc
introduce a new ErrorExpr to represent a subexpression that is semantically
...
inconsistent (so it needs to be killed) but that we want to retain source
range information and not kill the entire subtree that contains it.
Swift SVN r1073
2012-01-18 07:18:57 +00:00
John McCall
ea5e37e276
Getterize uses of TupleTypeElt. I'm trying to figure out how
...
parameter attributes should work here.
Swift SVN r1066
2012-01-18 04:05:25 +00:00
Chris Lattner
fa2ea94348
always turn a named reference to a type into an IdentifierType.
...
This preserving source location info and reduces redundancy in the parser.
Swift SVN r1065
2012-01-18 01:57:44 +00:00
Chris Lattner
1c42e8f6a6
rename DottedNameType to IdentifierType. It captures loc information for random uses of type names, among other things.
...
Swift SVN r1064
2012-01-18 01:52:28 +00:00
Chris Lattner
2f7cd03c6b
switch type lookup to use value lookup for everything. Dead code ahoy.
...
Swift SVN r1057
2012-01-17 07:36:16 +00:00
Chris Lattner
51e44891af
rip out now-dead code from NameBinding. It still generally needs to be beaten
...
into sense later, but this gets it closer to reasonable.
Swift SVN r1051
2012-01-17 06:35:34 +00:00
Chris Lattner
c8ca11a199
Drop in the new DottedNameType and wire it up in name binding.
...
This is horribly hack and slash (but enough to pass all tests) for a few reasons:
- I've #if 0'd out the tendrils of the old code
- This handles *just* what was handled before instead of being more general
- We don't have an llvm::MutableArrayRef type, so there is some really gross
const_cast'ing and other struggles to deal with its absence.
Swift SVN r1050
2012-01-17 06:32:00 +00:00
Chris Lattner
4f8193956d
introduce DottedNameType, which will eventually be used for foo.bar in a type context.
...
Swift SVN r1049
2012-01-17 01:55:17 +00:00
Chris Lattner
f5e5b411be
push OverloadSetRefExpr::createWithCopy through to the rest of the call sites that can
...
benefit from it, reducing redundancy.
Swift SVN r1045
2012-01-14 07:28:17 +00:00
Chris Lattner
fab4ef8820
introduce a new OverloadSetRefExpr::createWithCopy method to eliminate
...
some redundancy in the code that always has to create an overload set
or a single declrefexpr depending on what various lookups produce.
Swift SVN r1044
2012-01-14 07:22:25 +00:00
Chris Lattner
f1db6de509
remove the :: token and DCE UnresolvedScopedIdentifierExpr.
...
Swift SVN r1043
2012-01-14 07:00:45 +00:00
Chris Lattner
c5c81c6f70
Implement dot lookup on module types, allowing things like Builtin.add_int32 to find
...
the add_int32 member of the Builtin module. :: is now dead.
Swift SVN r1042
2012-01-14 06:52:38 +00:00
Chris Lattner
9d10d231ea
implement support for normal lookup to find module names, and build a
...
ModuleExpr of the right type to represent it. Not tested yet, because
nothing can handle module exprs.
Swift SVN r1041
2012-01-14 06:41:33 +00:00
Chris Lattner
4b8a147952
change the type grammar from qualifying a type with module::typename to module.typename.
...
Swift SVN r1036
2012-01-13 05:45:59 +00:00
Chris Lattner
be666df09e
introduce a ModuleExpr node.
...
Swift SVN r1035
2012-01-13 05:07:21 +00:00
Chris Lattner
73570ac177
introduce a new ModuleType, which will be the type given to ModuleExpr's.
...
Swift SVN r1034
2012-01-13 04:51:39 +00:00
Chris Lattner
5ab30d7a88
implement lookup of extension methods with a type as a base, e.g. type.extensionmethod.
...
This is semantically equivalent (but much more uniform) to C++'s method pointer stuff.
Swift SVN r1032
2012-01-12 23:07:06 +00:00
Chris Lattner
ed47f92c85
remove the ability for a::b to resolve a member 'b' in type 'a'. It now
...
just works for module references like Builtin::int32.
Swift SVN r1028
2012-01-12 21:54:32 +00:00
Chris Lattner
6db2a3a3b0
implement support for Ty.member to represent the same thing as Ty::member.
...
Swift SVN r1024
2012-01-12 20:49:57 +00:00
Chris Lattner
82cb8e3b7f
change the prototype for semaApplyExpr to allow it to retunr a new
...
node, allowing it to build ConstructorCallExpr correctly.
Swift SVN r1022
2012-01-12 20:08:19 +00:00
John McCall
59bed696a5
Introduce a ParenExpr to represent the special case of
...
a tuple with one element and no labels. This form is
treated specially in essentially every case, so it might
as well be its own expression kind.
Swift SVN r1021
2012-01-12 19:55:06 +00:00
Chris Lattner
472256440c
fix enough to get MetaType constructor calls to be able to resolve slices of oneof's.
...
In this case we're resolving ZeroOneTwoThree(1) to ZeroOneTwoThree::One(1)
Swift SVN r1017
2012-01-12 08:02:33 +00:00
Chris Lattner
4c050c0e52
Fix a nasty type checking bug (exposed by my next patch), where we would lose a
...
required type conversion in the presence of integer literals and dependent types.
Swift SVN r1016
2012-01-12 07:16:42 +00:00
Chris Lattner
e3a97a5b36
enhance type checking of apply exprs to handle application of an
...
argument list to a metatype. No functionality change since nothing
injects metatype'd values into a scope that can be looked up yet.
Swift SVN r1009
2012-01-12 06:10:02 +00:00
Chris Lattner
9f5d37dd2f
introduce a new ConstructorCallExpr node, which is sugar node used to represent
...
the syntactic form of an argument list applied to a metatype. Semantically,
this is yet-another ApplyExpr.
Swift SVN r1008
2012-01-12 05:43:07 +00:00
Chris Lattner
37cb633b12
Change TypeAliasDecl to be a ValueDecl, whose type is MetaTypeType.
...
Swift SVN r1004
2012-01-11 07:13:32 +00:00
Chris Lattner
e22a30a130
revert r995: "introduce MetaTypeDecl (though nothing creates it yet)".
...
After some pondering on this, I can just use DeclRefExpr(TypeAliasDecl) to
represent a named metatype, there is not need to have yet-another decl. I'm
glad about this, because it didn't seem right.
Swift SVN r999
2012-01-11 05:42:22 +00:00
Chris Lattner
f204abf010
introduce MetaTypeDecl (though nothing creates it yet)
...
Swift SVN r997
2012-01-06 20:50:56 +00:00
Chris Lattner
527c58f846
implement MetaTypeType, the type system representation of a metatype.
...
Swift SVN r996
2012-01-06 19:51:50 +00:00
John McCall
a87944a69f
Per discussion with Chris, this assertion is over-aggressive.
...
Swift SVN r995
2012-01-06 11:19:09 +00:00
John McCall
7e2b5e5410
Missing cases.
...
Swift SVN r994
2012-01-06 04:12:41 +00:00