Commit Graph

11460 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 6f466b70b0 Built-ins rely on storage manager 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 077cd62e1b Base class extracted 2013-08-23 17:39:07 +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 c4052e1286 @ThreadSafe annotation to mark classes that must be thread-safe 2013-08-23 17:39:07 +04:00
Andrey Breslav 25a5025c58 Built-ins can now be initialized on demand 2013-08-23 17:39:06 +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 8d110e4a30 Properly memoize classes in tests 2013-08-23 17:39:05 +04:00
Andrey Breslav a861ac0c10 Debug names for type deserializaers 2013-08-23 17:39:05 +04:00
Andrey Breslav 5492c8875e Proper names for class objects upon serialization of built-ins 2013-08-23 17:39:05 +04:00
Andrey Breslav 3ebd7d4e1d Validate built-ins before serializing 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 1d7fd47a51 Compile/Jar serialization-related code in build.xml 2013-08-23 17:39:04 +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
Alexander Udalov defbf705fc Revert "Don't memoize exceptions in built-ins resolve session"
This reverts commit 450d6cad3b. It's no longer
needed since there's no resolve session in built-ins anymore
2013-08-23 17:39:03 +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 d1d52086d7 Do not add pre-loaded built-ins when serializing 2013-08-23 17:39:02 +04:00
Andrey Breslav c04ecbc1cb Writing all built-in class names into a separate file 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 696b627cf4 Saving name table into a separate file 2013-08-23 17:39:01 +04:00
Andrey Breslav 0b65b8c4d3 (Circular) dependency between frontend and serialization 2013-08-23 17:39:01 +04:00
Andrey Breslav 2446d0d003 Common functionality for (de)serializing built-ons moved to a separate class 2013-08-23 17:39:00 +04:00
Andrey Breslav df57ce5a7f Allow names to be loaded individually for each class 2013-08-23 17:39:00 +04:00
Andrey Breslav bcab329195 Serializing builtins as individual files 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 af415d160f Allow rendering Any in all positions and using Function0 etc instead of "() -> ..." 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