John McCall
fc630c7f16
Inching towards a more useful idea of heap metadata.
...
In particular, prepare for storing real v-table-like information
in the heap metadata. Give the metadata object proper linkage
and emit it as part of emitting the class.
Adjust the manglings of constructors and destructors while I'm
at it.
Swift SVN r2628
2012-08-14 06:51:17 +00:00
John McCall
17027b8d8e
Basic support for members of generic types.
...
Swift SVN r2619
2012-08-13 09:03:40 +00:00
Chris Lattner
cd3f362faf
revert r2364, which introduced the swift_allocClass entrypoint. The optimization that it was
...
trying to block has since been reverted, and I think there are other approachs that will work.
Swift SVN r2547
2012-08-03 23:27:15 +00:00
Eli Friedman
0bfcfbfb8a
Change the type of ConstructorDecls to be of the form metatype<T> -> () -> (). Change a bunch of stuff to compensate. Get rid of ConstructorRefExpr, which is no longer used.
...
Swift SVN r2526
2012-08-03 03:58:44 +00:00
John McCall
f7aca3f7fb
Progress towards generic types.
...
Swift SVN r2454
2012-07-25 22:42:07 +00:00
Eli Friedman
ea6348f446
Make NewReferenceExpr inherit from ApplyExpr; this lets us delete some redundant code.
...
Swift SVN r2447
2012-07-25 20:55:51 +00:00
Eli Friedman
2834352a73
Fix a bug emitting the definition of a generic constructor on a class.
...
NewReferenceExprs referencing generic constructors still don't work;
I'm having trouble following how the code is supposed to work.
Swift SVN r2441
2012-07-25 01:23:30 +00:00
Eli Friedman
30d1f22bfb
Rewrite the representation of NewReferenceExpr to make it more friendly to generics.
...
Generic constructors on classes should be working with this commit.
Swift SVN r2440
2012-07-25 00:49:03 +00:00
John McCall
ed38caaa04
Support generic return types, as long as they don't differ
...
by abstraction from the concrete return type.
This basically gets generic calls working totally as long
as there's no remapping required.
Swift SVN r2402
2012-07-23 07:06:28 +00:00
John McCall
3950a6af41
Generic calls status code dump activate!
...
Swift SVN r2386
2012-07-20 21:59:14 +00:00
Eli Friedman
29b3994cca
Add a new entry point for allocating classes. This API probably isn't really
...
right, but we need something in the meantime to make the optimizer understand
that there could be non-trivial destructors involved.
Swift SVN r2366
2012-07-17 23:25:02 +00:00
Eli Friedman
c9cb594eb3
IRGen for destructors. (This code is likely to change a lot once we design classes properly, but it should be a decent start.)
...
Swift SVN r2365
2012-07-17 22:41:23 +00:00
Eli Friedman
77751012d2
Switch over constructors so that they return a value instead of being a
...
method to initialize the members. This doesn't matter so much
for structs (the generated IR is essentially equivalent except for
small structs), but on classes, we don't want to make "new X" generate
code that knows about metadata/destructors/etc for the class X.
Also, make sure classes always have a constructor. (We haven't really
discussed the rules for implicitly declared constructors, so for now,
the rule is just "generate an implicit constructor if there is no
explicit constructor". We'll want to revisit this when we actually
design object construction.)
Swift SVN r2361
2012-07-17 00:32:28 +00:00
Eli Friedman
6b4a248f04
Parsing and AST support for destructors on classes.
...
Swift SVN r2348
2012-07-12 01:26:02 +00:00
Eli Friedman
2268f7155d
Introduce UnresolvedNominalType to represent a generic type without an argument list, and add an argument list to NominalType to represent a generic type including an argument list.
...
Swift SVN r2299
2012-07-03 22:15:02 +00:00
John McCall
770ce0fde7
Refactor to make it easier to keep common information in
...
the type converter.
Swift SVN r2241
2012-06-25 20:44:59 +00:00
Eli Friedman
032d9d3538
Default construction for classes. <rdar://problem/11619111>.
...
Swift SVN r2172
2012-06-08 00:31:29 +00:00
Eli Friedman
f1ffa870a3
A few adjustments to AST/Sema for ConstructorDecls, and starting IRGen.
...
Swift SVN r2160
2012-06-06 00:53:44 +00:00
Eli Friedman
75907029f1
Add parsing and semantic analysis for a basic ConstructorDecl. Still missing: no IRGen, and semantic analysis to actually call them.
...
Swift SVN r2159
2012-06-05 23:51:19 +00:00
Eli Friedman
cd8632c685
Compute heap layout for classes lazily, so we don't get infinite recursion. <rdar://problem/11588882>.
...
Swift SVN r2155
2012-06-05 20:17:23 +00:00
Eli Friedman
8eeeb361ad
IRGen support for member functions on local types.
...
Swift SVN r2085
2012-05-31 00:16:46 +00:00
Eli Friedman
e63eb3003a
Some minor cleanups to decl IRGen.
...
Swift SVN r2065
2012-05-30 00:33:18 +00:00
Eli Friedman
9895a11be8
Get rid of some unnecessary handling for ExtensionDecls.
...
Swift SVN r2063
2012-05-30 00:27:32 +00:00
John McCall
90939b19c0
Provide a base class for implementing a single retainable object
...
pointer TypeInfo more conveniently. Have this class return true for
isSingleRetainablePointer(). Further specialize the implementations
of the value witnesses so that we no longer ever require type-specific
witnesses for reference types.
Swift SVN r1900
2012-05-18 10:02:04 +00:00
Eli Friedman
b788bad8e6
A couple missing pieces for classes. Also, a few fixes for local types.
...
Swift SVN r1873
2012-05-16 19:21:07 +00:00
Eli Friedman
33f20a14e0
Add NewReferenceExpr, for allocating class objects.
...
Swift SVN r1867
2012-05-16 01:36:03 +00:00
Eli Friedman
98933b8510
More work on ClassDecls; this is enough to get member access working.
...
Swift SVN r1863
2012-05-16 00:22:09 +00:00