2c0ef592e6
- Introduce DSL for declaration of contracts. Functions and classes in this DSL do not bear any computational semantics: in fact, they all do not exist on runtime. Whole work of extracting semantics from such calls is done by special parts of compiler - To make distinguishing those declarations more robust and convenient, introduce internal annotation @ContractsDSL - Turn off InlineChecker inside contracts DSL. We do this, because some functions from DSL should take any possible lambda, so we can't write any type besides 'Function<R>'. However, InlineChecker will complain if we will pass inlined lambda in such function -- though, this is false positive because we know that functions from contracts DSL will never be executed - Change testData on HierarchyTestWithLib, where new enum from kotlin.internal changed expected output ========== Effect System introduction: 7/18
The Kotlin Standard Library
This module creates the standard library for kotlin.
Notes for contributors
We use some code generation to generate the various utility extension function for the various collection-like types like arrays, strings, Collection<T>, Sequence<T>, Map<K, V> etc.
These sources are placed into generated folder and their names are prefixed with the underscore, for example generated/_Collections.kt
To run the code generator from the libraries directory of a kotlin checkout, use the following command:
./gradlew :tools:kotlin-stdlib-gen:run
Note: on Windows type
gradlewwithout the leading./
This then runs the script which generates a significant part of stdlib sources from the templates authored with a special kotlin based DSL.