Commit Graph

68 Commits

Author SHA1 Message Date
Alexander Udalov 06496ea3ed Deserialized type's hashCode() should compute everything 2013-08-23 17:39:10 +04:00
Andrey Breslav 113c5994e8 Deserialized types rely on storage manager 2013-08-23 17:39:09 +04:00
Andrey Breslav d8e2034c71 Deserializers use storage manager 2013-08-23 17:39:09 +04:00
Andrey Breslav 48435531ea Deserialized scopes rely on storage manager 2013-08-23 17:39:09 +04:00
Andrey Breslav 8ff99b9fe7 Class descriptors rely on StorageManager 2013-08-23 17:39:09 +04:00
Andrey Breslav f527fe251c Replace a mutable map with a memoized function
(Premature optimization removed: trove's map replaced by something that will be boxing primitives)
2013-08-23 17:39:08 +04:00
Andrey Breslav 867adcc167 Getting rid of mutable state in TypeDeserializer 2013-08-23 17:39:08 +04:00
Andrey Breslav e960247936 Useless class IndexedSymbolTable removed 2013-08-23 17:39:08 +04:00
Andrey Breslav fd3f2d93be Using lazy type parameter descriptors 2013-08-23 17:39:08 +04:00
Andrey Breslav 37707e51a2 Refactoring: type parameters are explicitly built on the call site, not in the constructor 2013-08-23 17:39:08 +04:00
Andrey Breslav 962092cfae Rename Namer -> DescriptorNamer & Move it to the top level 2013-08-23 17:39:07 +04:00
Andrey Breslav c0707628e8 DeserializedType uses lazy values 2013-08-23 17:39:07 +04:00
Andrey Breslav d219b72e40 DeserializedType is a named class now 2013-08-23 17:39:07 +04:00
Andrey Breslav 30daf0aded Support property accessors 2013-08-23 17:39:06 +04:00
Andrey Breslav 093d664ae1 Extract method 2013-08-23 17:39:06 +04:00
Andrey Breslav a861ac0c10 Debug names for type deserializaers 2013-08-23 17:39:05 +04:00
Andrey Breslav c44d26e73a Serialization of error types is not supported 2013-08-23 17:39:05 +04:00
Andrey Breslav a95bbb0f1d equals() and hashCode() for lazy types in built-ins 2013-08-23 17:39:04 +04:00
Andrey Breslav 7eed913e48 Deserialize constructor return type 2013-08-23 17:39:04 +04:00
Andrey Breslav 2aa0afd199 Support inner classes scopes in deserialized classes 2013-08-23 17:39:04 +04:00
Andrey Breslav b7966179f5 Deserialize built-ins 2013-08-23 17:39:04 +04:00
Andrey Breslav 1fe9b58181 Implicit receivers hierarchy for deserialized classes 2013-08-23 17:39:03 +04:00
Andrey Breslav ae9950d88d Deserialize expected this objects 2013-08-23 17:39:03 +04:00
Andrey Breslav ece3684622 Lazy receiver parameter descriptor: to avoid eager computation of default types 2013-08-23 17:39:03 +04:00
Andrey Breslav bceb469294 Formatting 2013-08-23 17:39:02 +04:00
Andrey Breslav 14058f7aed Any and Nothing have no supertypes 2013-08-23 17:39:02 +04:00
Andrey Breslav de1f114b27 Deterministic order of descriptors preserves name indexing for different serializer runs 2013-08-23 17:39:01 +04:00
Andrey Breslav df57ce5a7f Allow names to be loaded individually for each class 2013-08-23 17:39:00 +04:00
Andrey Breslav 47d1633252 Support creating a new serializer for each class 2013-08-23 17:39:00 +04:00
Andrey Breslav 76e01fa552 Less verbose, type-safe implementation of Flags 2013-08-23 17:39:00 +04:00
Andrey Breslav 4f12a3d86e Stub support for annotations 2013-08-23 17:38:59 +04:00
Andrey Breslav 557fdfcd56 Testing builtins' serialization 2013-08-23 17:38:59 +04:00
Andrey Breslav 5b8d41cc36 Utilities 2013-08-23 17:38:59 +04:00
Andrey Breslav 7fb5316a3a Dependency on ClassResolver moved to TypeDeserializer 2013-08-23 17:38:58 +04:00
Andrey Breslav 0c49940356 Dependency on ClassResolver moved to TypeDeserializer 2013-08-23 17:38:58 +04:00
Andrey Breslav b38c5b9d08 Outer classes are properly computed 2013-08-23 17:38:58 +04:00
Andrey Breslav b536b3961e getName()/getFqName() -> asString() 2013-08-23 17:38:58 +04:00
Andrey Breslav b90522b223 Namer added to abstract over naming conventions on different platforms 2013-08-23 17:38:57 +04:00
Andrey Breslav 347e2c27aa Using FqNameUnsafe for relative class names 2013-08-23 17:38:57 +04:00
Andrey Breslav 699d5acd36 toString() for deserialized classes 2013-08-23 17:38:57 +04:00
Andrey Breslav 7f2f3a60a7 Object descriptors added 2013-08-23 17:38:57 +04:00
Andrey Breslav c397a84040 Support deserializing special names 2013-08-23 17:38:56 +04:00
Andrey Breslav d04865cea3 Using ClassId instead of FqName 2013-08-23 17:38:56 +04:00
Andrey Breslav bb27d5c283 Class resolution simplified (effectively dead code eliminated) 2013-08-23 17:38:56 +04:00
Andrey Breslav 930217c877 Interner fixed: looks item up in parent first 2013-08-23 17:38:56 +04:00
Andrey Breslav 655db3ca44 Value parameters flags supported 2013-08-23 17:38:55 +04:00
Andrey Breslav 2e978950ab Primary constructors supported 2013-08-23 17:38:55 +04:00
Andrey Breslav 4c689bc328 Better processing of upper bounds 2013-08-23 17:38:55 +04:00
Andrey Breslav 2a928a2bfe Support properties in serialized classes 2013-08-23 17:38:55 +04:00
Andrey Breslav c610695612 Flags supported for classes and their members 2013-08-23 17:38:54 +04:00