现代化的JVM语言 Kotli v1.0.2发布
jopen 8年前
<p><img alt="" src="https://simg.open-open.com/show/433cc3c79f034137a93c6e635baa7772.png" /></p> <p> 2010年,长达是十年之久的Java开发让JetBrains的工程师认为老旧的Java语言已经严重阻碍了生产力。他们认为是时候开发一款现代化的JVM语言了,这也是因为他们有足够的资源和专家。本身做各种IDEs起家的JetBrains就开始着手新工具的开发——一个编程语言。</p> <p> Kotlin可以通过versa调用Java方法,源码可在同一项目中混合使用,甚至生成的.class文件完全兼容Java工具。JetBrains内部现在已经有一个超过20个开发人员的团队使用Kotlin开发。 目前已经有大量的开发人员使用Kotlin开发web服务后端和Android应用。</p> <h2>更新日志</h2> <p>Analysis & diagnostics</p> <ul> <li><a href="/misc/goto?guid=4958990342360295505">KT-7437</a>, <a href="/misc/goto?guid=4958990342466744796">KT-7971</a>, <a href="/misc/goto?guid=4958990342565741936">KT-7051</a>, <a href="/misc/goto?guid=4958990342663126732">KT-6125</a>, <a href="/misc/goto?guid=4958990342767840288">KT-6186</a>, <a href="/misc/goto?guid=4958990342888457595">KT-11649</a> Implement missing checks for protected visibility</li> <li><a href="/misc/goto?guid=4958990342984814202">KT-11666</a> Report "Implicit nothing return type" on non-override member functions</li> <li><a href="/misc/goto?guid=4958990343084113664">KT-4328</a>, <a href="/misc/goto?guid=4958990343193815444">KT-11497</a>, <a href="/misc/goto?guid=4958990343297183400">KT-10493</a>, <a href="/misc/goto?guid=4958990343396783744">KT-10820</a>, <a href="/misc/goto?guid=4958990343495564153">KT-11368</a> Report error if some classes were not found due to missing or conflicting dependencies</li> <li><a href="/misc/goto?guid=4958990343606907419">KT-11280</a> Do not perform smart casts for values with custom <code>equals</code> compared with <code>==</code></li> <li><a href="/misc/goto?guid=4958990343709135475">KT-3856</a> Fix wrong "inner class inaccessible" diagnostic for extension to outer class</li> <li><a href="/misc/goto?guid=4958990343807497074">KT-3896</a>, <a href="/misc/goto?guid=4958990343910311558">KT-3883</a>, <a href="/misc/goto?guid=4958990344010006151">KT-4986</a> <code>do...while (true)</code> is now considered an infinite loop</li> <li><a href="/misc/goto?guid=4958990344117678581">KT-10445</a> Prohibit initialization of captured <code>val</code> in lambda or in local function</li> <li><a href="/misc/goto?guid=4958990344223942099">KT-10042</a> Correctly handle local classes and anonymous objects in control flow analysis</li> <li><a href="/misc/goto?guid=4958990344362374992">KT-11043</a> Prohibit complex expressions with class literals in annotation arguments</li> <li><a href="/misc/goto?guid=4958990344497231095">KT-10992</a>, <a href="/misc/goto?guid=4958990344633788680">KT-11007</a> Fix multiple problems related to smart casts</li> <li><a href="/misc/goto?guid=4958990344774470061">KT-11490</a> Prohibit nested intersection types in return position</li> <li><a href="/misc/goto?guid=4958990344909585900">KT-11411</a> Report "illegal noinline/crossinline" on parameter of subtype of function type</li> <li><a href="/misc/goto?guid=4958990345052652748">KT-3083</a> Report "conflicting overloads" for functions with parameter of type parameter type</li> <li><a href="/misc/goto?guid=4958990345175538918">KT-7265</a> Parse anonymous functions in blocks as expressions</li> <li><a href="/misc/goto?guid=4958990345312731694">KT-8246</a> Handle break/continue for outer loop correctly in case of try/finally in between</li> <li><a href="/misc/goto?guid=4958990345431184095">KT-11300</a> Report error on increment or augmented assignment when <code>get</code> is an operator but <code>set</code> is not</li> <li>Report warning about unused anonymous functions</li> <li>Improve callable reference type in some ambiguous cases</li> <li>Improve multiple diagnostic messages: <a href="/misc/goto?guid=4958990345564812081">KT-10761</a>, <a href="/misc/goto?guid=4958990345694960990">KT-9760</a>, <a href="/misc/goto?guid=4958990345831703108">KT-10949</a>, <a href="/misc/goto?guid=4958990345946640655">KT-9887</a>, <a href="/misc/goto?guid=4958990346066576116">KT-9550</a>, <a href="/misc/goto?guid=4958990346180561696">KT-11239</a>, <a href="/misc/goto?guid=4958990346298081659">KT-11819</a></li> <li>Fix several compiler bugs leading to exceptions: <a href="/misc/goto?guid=4958990346427435770">KT-9820</a>, <a href="/misc/goto?guid=4958990346544529861">KT-11597</a>, <a href="/misc/goto?guid=4958990346664566495">KT-10983</a>, <a href="/misc/goto?guid=4958990346789259777">KT-10972</a>, <a href="/misc/goto?guid=4958990346891984385">KT-11287</a>, <a href="/misc/goto?guid=4958990347020961964">KT-11492</a>, <a href="/misc/goto?guid=4958990347125925665">KT-11765</a>, <a href="/misc/goto?guid=4958990347251955782">KT-11869</a></li> </ul> <p>JVM code generation</p> <ul> <li><a href="/misc/goto?guid=4958990347374651406">KT-8269</a>, <a href="/misc/goto?guid=4958990347497124963">KT-9246</a>, <a href="/misc/goto?guid=4958990347627561991">KT-10143</a> Fix visibility of protected classes in bytecode</li> <li><a href="/misc/goto?guid=4958990347738482443">KT-11363</a> Fix potential binary compatibility breakage on using <code>when</code> over enums in inline functions</li> <li><a href="/misc/goto?guid=4958990347848718562">KT-11762</a> Fix VerifyError caused by explicit loop variable type</li> <li><a href="/misc/goto?guid=4958990347963759311">KT-11645</a> Fix NoSuchFieldError on private const property in multi-file class</li> <li><a href="/misc/goto?guid=4958990348062617153">KT-9670</a> Optimize Class <-> KClass wrapping/unwrapping when getting values from annotation</li> <li><a href="/misc/goto?guid=4958990348167039157">KT-6842</a> Optimize unnecessary boxing and interface calls on iterating over ranges</li> <li><a href="/misc/goto?guid=4958990348255777457">KT-11025</a> Don't inline const val properties in non-annotation contexts</li> <li><a href="/misc/goto?guid=4958990348349235283">KT-5429</a> Write nullability annotations on extension receiver parameters</li> <li><a href="/misc/goto?guid=4958990348434436673">KT-11347</a> Preserve source file and line number of call site when inlining certain standard library functions</li> <li><a href="/misc/goto?guid=4958990348548810035">KT-11677</a> Write correct generic signatures for local classes in inlined lambdas</li> <li><a href="/misc/goto?guid=4958990348667694481">KT-12127</a> Do not write unnecessary generic signature for property delegate backing field</li> <li>Fix multiple issues leading to exceptions or bad bytecode being generated: <a href="/misc/goto?guid=4958990348780391331">KT-11034</a>, <a href="/misc/goto?guid=4958990348898102338">KT-11519</a>,<a href="/misc/goto?guid=4958990349018084835">KT-11117</a>, <a href="/misc/goto?guid=4958990349116836111">KT-11479</a></li> </ul> <p>Java interoperability</p> <ul> <li><a href="/misc/goto?guid=4958990349216591988">KT-3068</a> Load contravariantly projected collections in Java (<code>List<? super T></code>) as mutable collections in Kotlin (<code>MutableList<in T></code>)</li> <li><a href="/misc/goto?guid=4958990349325393028">KT-11322</a> Do not lose type nullability information in SAM constructors</li> <li><a href="/misc/goto?guid=4958990349425919756">KT-11721</a> Fix wrong "Typechecker has run into recursive problem" error on calling Kotlin get function as synthetic Java property</li> <li><a href="/misc/goto?guid=4958990349527148025">KT-10691</a> Fix wrong "Inherited platform declarations clash" error on inheritance from generic Java class with overloaded methods</li> </ul> <p>Command line compiler</p> <ul> <li><a href="/misc/goto?guid=4958990349633334988">KT-9546</a> Flush stdout and stderr before shutdown when executing scripts</li> <li><a href="/misc/goto?guid=4958990349724234229">KT-10605</a> Disable colored output on certain platforms to prevent crashes</li> <li>Report warning instead of error on unknown "-X" flags</li> <li>Remove the compiler option "Xmultifile-facades-open"</li> </ul> <p>Compiler daemon</p> <ul> <li>Reduce read disk activity</li> <li>Fix compiler daemon JAR cache clearing on IDEA Ultimate</li> </ul> <h3>Standard library</h3> <ul> <li><a href="/misc/goto?guid=4958990349818200772">KT-11410</a> Reduce method count of the standard library by ~2k</li> <li><a href="/misc/goto?guid=4958990349915337308">KT-9990</a> Optimize snapshot operations to return special collection implementations when result is empty or has single element</li> <li><a href="/misc/goto?guid=4958990350006965173">KT-10794</a> EmptyList now implements RandomAccess</li> <li><a href="/misc/goto?guid=4958990350095365978">KT-10821</a> Create at most one wrapper sequence for adjacent drop/take operations on sequences</li> <li><a href="/misc/goto?guid=4958990350182120526">KT-11301</a> Make Map.plus accept Map out-projected by key type as either operand (receiver or parameter)</li> <li><a href="/misc/goto?guid=4958990350278404088">KT-11485</a> Remove implementations of some internal intrinsic functions</li> <li><a href="/misc/goto?guid=4958990350358882809">KT-11648</a> Add deprecated extension MutableList.remove to redirect to valid function removeAt</li> <li><a href="/misc/goto?guid=4958990350434267354">KT-11348</a> kotlin.test: Make inline methods <code>todo</code> and <code>currentStackTrace</code> <code>@InlineOnly</code> not to lose stack trace</li> <li><a href="/misc/goto?guid=4958990350515236057">KT-11745</a> Rename parameters of <code>String.subSequence</code> to match those of <code>CharSequence.subSequence</code></li> <li><a href="/misc/goto?guid=4958990350616549419">KT-10953</a> Clarify parameter order of lambda function parameter of <code>*Indexed</code> functions</li> <li><a href="/misc/goto?guid=4958990350700380148">KT-10198</a> Improve docs for <code>binarySearch</code> functions</li> <li><a href="/misc/goto?guid=4958990350797042452">KT-9786</a> Improve docs for <code>trimIndent</code>/<code>trimMargin</code></li> </ul> <h3>Reflection</h3> <ul> <li><a href="/misc/goto?guid=4958990350881670515">KT-9952</a> Improve <code>toString()</code> for lambdas and function expressions when kotlin-reflect.jar is available</li> <li><a href="/misc/goto?guid=4958990350963023020">KT-11433</a> Fix multiple resource leaks by closing InputStream instances</li> <li><a href="/misc/goto?guid=4958990351054720221">KT-8131</a> Fix exception from calling <code>KProperty.javaField</code> on a subclass</li> <li><a href="/misc/goto?guid=4958990351140610733">KT-10690</a> Support <code>javaMethod</code> and <code>kotlinFunction</code> for top level functions in a different file</li> <li><a href="/misc/goto?guid=4958990351231708326">KT-11447</a> Support reflection calls to multifile class members</li> <li><a href="/misc/goto?guid=4958990351311409985">KT-10892</a> Load annotations of const properties from multifile classes</li> <li><a href="/misc/goto?guid=4958990351410566601">KT-11258</a> Don't crash on requesting members of Java collection classes</li> <li><a href="/misc/goto?guid=4958990351492010129">KT-11502</a> Clarify KClass equality</li> </ul> <h3>JS</h3> <ul> <li><a href="/misc/goto?guid=4958990351574008999">KT-4124</a> Support nested classes</li> <li><a href="/misc/goto?guid=4958990351660477052">KT-11030</a> Support local classes</li> <li><a href="/misc/goto?guid=4958990351749270379">KT-7819</a> Support non-local returns in local lambdas</li> <li><a href="/misc/goto?guid=4958990351836411398">KT-6912</a> Safe calls (<code>x?.let { it }</code>) are now inlined</li> <li><a href="/misc/goto?guid=4958990351928913320">KT-2670</a> Support unsafe casts (<code>as</code>)</li> <li><a href="/misc/goto?guid=4958990352014560710">KT-7016</a>, <a href="/misc/goto?guid=4958990352101770562">KT-8012</a> Fix <code>is</code>-checks for reified type parameters</li> <li><a href="/misc/goto?guid=4958990352191084142">KT-7038</a> Avoid unwanted side effects on <code>is</code>-checks for nullable types</li> <li><a href="/misc/goto?guid=4958990352273960265">KT-10614</a> Copy array on vararg call with spread operator</li> <li><a href="/misc/goto?guid=4958990352365990433">KT-10785</a> Correctly translate property names and receiver instances in assignment operations</li> <li><a href="/misc/goto?guid=4958990352600640770">KT-11611</a> Fix translation of default value of secondary constructor's functional parameter</li> <li><a href="/misc/goto?guid=4958990352691040977">KT-11100</a> Fix generation of <code>invoke</code> on objects and companion objects</li> <li><a href="/misc/goto?guid=4958990352779245168">KT-11823</a> Fix capturing of outer class' <code>this</code> in inner's lambdas</li> <li><a href="/misc/goto?guid=4958990352860314131">KT-11996</a> Fix translation of a call to a private member of an outer class from an inner class which is a subtype of the outer class</li> <li><a href="/misc/goto?guid=4958990352952840410">KT-10667</a> Support inheritance from nested built-in types such as Map.Entry</li> <li><a href="/misc/goto?guid=4958990353040433169">KT-7480</a> Remove declarations of LinkedList, SortedSet, TreeSet, Enumeration</li> <li><a href="/misc/goto?guid=4958990353128946482">KT-3064</a> Implement <code>CharSequence.repeat</code></li> </ul> <h3>IDE</h3> <p>New features:</p> <ul> <li>Spring Support <ul> <li><a href="/misc/goto?guid=4958990353209002919">KT-11098</a> Inspection on final classes/functions annotated with Spring<code>@Configuration</code>/<code>@Component</code>/<code>@Bean</code></li> <li><a href="/misc/goto?guid=4958990353306852452">KT-11405</a> Navigation and Find Usages for Spring beans referenced in annotation arguments and BeanFactory method calls</li> <li><a href="/misc/goto?guid=4958990353382271658">KT-3741</a> Show Spring-specific line markers on Kotlin classes</li> <li><a href="/misc/goto?guid=4958990353468351048">KT-11406</a> Support Spring EL injections inside of Kotlin string literals</li> <li><a href="/misc/goto?guid=4958990353564370330">KT-11604</a> Support "Configure Spring facet" inspection on Kotlin classes</li> <li><a href="/misc/goto?guid=4958990353649418995">KT-11407</a> Implement "Generate Spring Dependency..." actions</li> <li><a href="/misc/goto?guid=4958990353726567299">KT-11408</a> Implement "Generate <code>@Autowired</code> Dependency..." action</li> <li><a href="/misc/goto?guid=4958990353805247637">KT-11652</a> Rename bean attributes mentioned in Spring XML config together with corresponding Kotlin declarations</li> </ul> </li> <li>Enable precise incremental compilation by default in non-Maven/Gradle projects</li> <li><a href="/misc/goto?guid=4958990353887627424">KT-11612</a> Highlight named arguments</li> <li><a href="/misc/goto?guid=4958990353977392575">KT-7715</a> Highlight <code>var</code>s that can be replaced by <code>val</code>s</li> <li><a href="/misc/goto?guid=4958990354056097921">KT-5208</a> Intention action to convert string to raw string and back</li> <li><a href="/misc/goto?guid=4958990354134445773">KT-11078</a> Quick fix to remove <code>.java</code> when KClass is expected</li> <li><a href="/misc/goto?guid=4958990354250823122">KT-1494</a> Inspection to highlight public members with no documentation</li> <li><a href="/misc/goto?guid=4958990354367817700">KT-8473</a> Intention action to implement interface or abstract class</li> <li><a href="/misc/goto?guid=4958990354492857244">KT-10299</a> Inspection to warn on array properties in data classes</li> <li><a href="/misc/goto?guid=4958990354609177990">KT-6674</a> Inspection to warn on protected symbols in effectively final classes</li> <li><a href="/misc/goto?guid=4958990354748256643">KT-11576</a> Quick fix to suppress "Unused symbol" warning based on annotations on the declaration</li> <li><a href="/misc/goto?guid=4958990354872284948">KT-10063</a> Quick fix for adding <code>arrayOf</code> wrapper for annotation parameters</li> <li><a href="/misc/goto?guid=4958990354980058350">KT-10476</a> Quick fix for converting primitive types</li> <li><a href="/misc/goto?guid=4958990355097180537">KT-10859</a> Quick fix to make <code>var</code> with private setter final</li> <li><a href="/misc/goto?guid=4958990355212885668">KT-9498</a> Quick fix to specify property type</li> <li><a href="/misc/goto?guid=4958990355328801679">KT-10509</a> Quick fix to simplify condition with senseless comparison</li> <li><a href="/misc/goto?guid=4958990355429546899">KT-11404</a> Quick fix to let type implement missing interface</li> <li><a href="/misc/goto?guid=4958990355531110398">KT-6785</a>, <a href="/misc/goto?guid=4958990355649067223">KT-10013</a>, <a href="/misc/goto?guid=4958990355782184288">KT-9996</a>, <a href="/misc/goto?guid=4958990355915032656">KT-11675</a> Support Smart Enter for trailing lambda argument, try/catch/finally, property setter, init block</li> <li>Add <code>kotlinClassName()</code> and <code>kotlinFunctionName()</code> macros for use in live templates</li> <li>Auto-configure EAP-repository during Kotlin Maven and Gradle project set up</li> </ul> <p>Issues fixed:</p> <ul> <li><a href="/misc/goto?guid=4958990356032065513">KT-11678</a>, <a href="/misc/goto?guid=4958990356136101141">KT-4768</a> Support navigation to Kotlin libraries from Java sources</li> <li><a href="/misc/goto?guid=4958990356263715267">KT-9401</a> Support Change Signature quick fix for Java -> Kotlin case</li> <li><a href="/misc/goto?guid=4958990356380338872">KT-8592</a> Fix "Choose sources" for Kotlin files</li> <li><a href="/misc/goto?guid=4958990356496318388">KT-11256</a> Fix Navigate to declaration for Java constructor with <code>@NotNull</code> parameter</li> <li><a href="/misc/goto?guid=4958990356616356547">KT-11018</a> Fix <code>var</code>s shown in Ctrl + Mouse Hover as <code>val</code>s</li> <li><a href="/misc/goto?guid=4958990356745310425">KT-5105</a>, <a href="/misc/goto?guid=4958990356864615008">KT-11024</a> Improve incompatible ABI versions editor strap, show the hint on how to resolve the problem</li> <li><a href="/misc/goto?guid=4958990356999049108">KT-11638</a> Fixed <code>hashCode()</code> implementation in "Generate equals/hashCode" action</li> <li><a href="/misc/goto?guid=4958990357120778988">KT-10971</a> Pull Members Up: Always insert spaces between keywords</li> <li><a href="/misc/goto?guid=4958990357248891098">KT-11476</a>, <a href="/misc/goto?guid=4958990357365666391">KT-4175</a>, <a href="/misc/goto?guid=4958990357485368584">KT-10965</a>, <a href="/misc/goto?guid=4958990357617324711">KT-11076</a> Formatter: fix multiple issues regarding space handling</li> <li><a href="/misc/goto?guid=4958990357740318158">KT-9025</a> Improve "Create Kotlin Java runtime library" dialog usability</li> <li><a href="/misc/goto?guid=4958990357872430477">KT-11481</a> Fix "Add import" intention not being available for <code>is</code> branches in when</li> <li><a href="/misc/goto?guid=4958990358011516004">KT-10619</a> Fix completion after package name in annotation</li> <li><a href="/misc/goto?guid=4958990358146157254">KT-10621</a> Do not show non-top level packages after <code>@</code> in completion</li> <li><a href="/misc/goto?guid=4958990358280151790">KT-11295</a> "Convert string to template" intention: fix exception on certain code</li> <li><a href="/misc/goto?guid=4958990358400247255">KT-10750</a>, <a href="/misc/goto?guid=4958990358526628582">KT-11424</a> "Convert if to when" intention now detects effectively else branches in subsequent code and performs more accurate comment handling</li> <li>Configure Kotlin: show only changed files in the notification "Kotlin not configured", restore all changed files in undo action</li> <li><a href="/misc/goto?guid=4958990358683494904">KT-11556</a> Do not show "Kotlin not configured" for Kotlin JS projects</li> <li><a href="/misc/goto?guid=4958990358808836752">KT-11593</a> Fix "Configure Kotlin" action for Gradle projects in IDEA 2016</li> <li><a href="/misc/goto?guid=4958990358932053513">KT-11077</a> Use new built-in definition file format (<code>.kotlin_builtins</code> files)</li> <li><a href="/misc/goto?guid=4958990359067915503">KT-5728</a> Remove closing curly brace in a string template when opening one is deleted</li> <li><a href="/misc/goto?guid=4958990359198881772">KT-10883</a> "Explicit get or set call" quick fix: do not move caret too far away</li> <li><a href="/misc/goto?guid=4958990359322492128">KT-5717</a> "Replace 'when' with 'if'": do not lose comments</li> <li><a href="/misc/goto?guid=4958990359464803063">KT-10797</a> "Replace with operator" intention is not available anymore for non-<code>operator</code> functions</li> <li><a href="/misc/goto?guid=4958990359606148676">KT-11529</a> Highlighting range for unresolved annotation name does not include <code>@</code> now</li> <li><a href="/misc/goto?guid=4958990359733108878">KT-11178</a> Don't show "Change type arguments" fix when there's nothing to change</li> <li><a href="/misc/goto?guid=4958990359855318404">KT-11789</a> Don't interpret annotations inside Markdown code blocks as KDoc tags</li> <li><a href="/misc/goto?guid=4958990359991520567">KT-11702</a> Fixed resolution of Kotlin beans with custom name</li> <li><a href="/misc/goto?guid=4958990360119078205">KT-11689</a> Fixed exception on attempt to navigate to Kotlin file from Spring notification balloon</li> <li><a href="/misc/goto?guid=4958990360259474749">KT-11725</a> Fixed renaming of injected SpEL references</li> <li><a href="/misc/goto?guid=4958990360384043934">KT-11720</a> Fixed renaming of Kotlin beans through SpEL references</li> <li><a href="/misc/goto?guid=4958990360509024339">KT-11719</a> Fixed renaming of Kotlin parameters references in XML files</li> <li><a href="/misc/goto?guid=4958990360643899056">KT-11736</a> Fixed searching of Java usages for @JvmStatic properties and @JvmStatic @JvmOverloads functions</li> <li><a href="/misc/goto?guid=4958990360780614109">KT-11862</a> Fixed bogus warnings about unresolved types in the Change Signature dialog</li> <li>Fix several issues leading to exceptions: <a href="/misc/goto?guid=4958990360905142617">KT-11579</a>, <a href="/misc/goto?guid=4958990361032956069">KT-11580</a>, <a href="/misc/goto?guid=4958990361171091748">KT-11777</a>, <a href="/misc/goto?guid=4958990361293175898">KT-11868</a>, <a href="/misc/goto?guid=4958990361424115636">KT-11845</a>, <a href="/misc/goto?guid=4958990361561746654">KT-11486</a></li> <li>Fixed NoSuchFieldException in Kotlin module settings on IDEA Ultimate</li> </ul> <p>Debugger</p> <ul> <li><a href="/misc/goto?guid=4958990361672654196">KT-11705</a> "Smart step into" no longer skips methods from subclasses</li> <li>Debugger can now distinguish nested inline arguments</li> <li><a href="/misc/goto?guid=4958990361837210201">KT-11326</a> Support private classes in Evaluate Expression</li> <li><a href="/misc/goto?guid=4958990361999760641">KT-11455</a> Fix Evaluate Expression behavior for files with errors in sources</li> <li><a href="/misc/goto?guid=4958990362147149699">KT-10670</a> Fix Evaluate Expression behavior for inline functions with default parameters</li> <li><a href="/misc/goto?guid=4958990362291708335">KT-11380</a> Evaluate Expression now handles smart casts correctly</li> <li><a href="/misc/goto?guid=4958990362413952742">KT-10148</a> Do not suggest methods from outer context in "Smart step into"</li> <li>Fix Evaluate Expression for expression created for array element</li> <li>Complete private members from libraries in Evaluate Expression</li> <li><a href="/misc/goto?guid=4958990362537871122">KT-11578</a> Evaluate Expression: do not highlight completion variants from nullable receiver with grey</li> <li><a href="/misc/goto?guid=4958990362651580748">KT-6805</a> Convert Java expression to Kotlin when opening Evaluate Expression from Variables view</li> <li><a href="/misc/goto?guid=4958990362773747345">KT-11927</a> Fix "ambiguous import" error when invoking Evaluate Expression from Variables view for some field</li> <li><a href="/misc/goto?guid=4958990362881838317">KT-11831</a> Fix Evaluate Expression for values of raw types</li> <li>Show error message when debug info for some local variable is corrupted</li> <li>Avoid 1s delay in completion in debugger fields if session is not stopped on a breakpoint</li> <li>Avoid cast to runtime type unavailable in current scope</li> <li>Fix text with line breaks in popup with line breakpoint variants</li> <li>Fix breakpoints inside inline functions in libraries sources</li> <li>Allow breakpoints at catch clause declaration</li> <li><a href="/misc/goto?guid=4958990362989033025">KT-11848</a> Fix breakpoints inside generic crossinline lambda argument body</li> <li><a href="/misc/goto?guid=4958990363097907304">KT-11932</a> Fix Step Over for <code>while</code> loop condition</li> </ul> <h3>Java to Kotlin converter</h3> <ul> <li>Protected members used outside of inheritors are converted as public</li> <li>Support conversion for annotation constructor calls</li> <li>Place comments from the middle of the call to the end</li> <li>Drop line breaks between operator arguments (except <code>+</code>, <code>-</code>, <code>&&</code> and <code>||</code>)</li> <li>Add non-null assertions on call site for non-null parameters</li> <li>Specify type for variables with anonymous type if they have write accesses</li> <li><a href="/misc/goto?guid=4958990363221997122">KT-11587</a> Fix conversion of static field accesses from other Java class</li> <li><a href="/misc/goto?guid=4958990363324198589">KT-6800</a> Quote <code>$</code> symbols in converted strings</li> <li><a href="/misc/goto?guid=4958990363434863068">KT-11126</a> Convert annotations in annotations parameters correctly</li> <li><a href="/misc/goto?guid=4958990363551024609">KT-11600</a> Do not produce unresolved <code>toArray</code> calls for Java <code>Collection#toArray(T[])</code></li> <li><a href="/misc/goto?guid=4958990363660249103">KT-11544</a> Fix conversion of uninitialized non-final field</li> <li><a href="/misc/goto?guid=4958990363771016106">KT-10604</a> Fix conversion of scratch files</li> <li><a href="/misc/goto?guid=4958990363892196144">KT-11543</a> Do not produce unnecessary casts of non-nullable expression to nullable type</li> <li><a href="/misc/goto?guid=4958990364001936059">KT-11160</a> Fix IDE freeze</li> </ul> <h3>Android</h3> <ul> <li><a href="/misc/goto?guid=4958990364108482400">KT-7729</a> Add Android Lint checks for Kotlin (from Android Studio 1.5)</li> <li><a href="/misc/goto?guid=4958990364226199484">KT-11487</a> Fixed sequential build with kapt and stubs enabled when Kotlin source file was modified and no Java source files were modified</li> <li><a href="/misc/goto?guid=4958990364331284771">KT-11264</a> Action to create new activity in Kotlin</li> <li><a href="/misc/goto?guid=4958990364443532900">KT-11201</a> Do not ignore items with similar names in kapt</li> <li><a href="/misc/goto?guid=4958990364556363308">KT-11944</a> Rename Android Extensions imports when the layout file is renamed/deleted/added</li> <li><a href="/misc/goto?guid=4958990364661092513">KT-10321</a> Do not upcast ViewStub to View</li> <li><a href="/misc/goto?guid=4958990364779456387">KT-10841</a> Support <code>@android:id/*</code> IDs in Android Extensions</li> </ul> <h3>Maven</h3> <ul> <li><a href="/misc/goto?guid=4958990364888785215">KT-2917</a>, <a href="/misc/goto?guid=4958990365009895846">KT-11261</a> Maven archetype for new Kotlin projects</li> </ul> <h3>Gradle</h3> <ul> <li><a href="/misc/goto?guid=4958990365113237024">KT-8487</a> Experimental support for incremental compilation with project property <code>kotlin.incremental</code></li> <li><a href="/misc/goto?guid=4958990365228753605">KT-11350</a> Fixed a bug causing Java rebuild when both Java and Kotlin are up-to-date</li> <li><a href="/misc/goto?guid=4958990365339926131">KT-10507</a> Fix IllegalArgumentException "Missing extension point" on parallel builds</li> <li><a href="/misc/goto?guid=4958990365454191896">KT-10932</a> Prevent compile tasks from running when nothing changes</li> <li><a href="/misc/goto?guid=4958990365561165360">KT-11993</a> Fix NoSuchMethodError on access to internal members in production from tests (IDEA 2016+)</li> </ul> <h2>下载地址</h2> <ul> <li><a href="/misc/goto?guid=4958990365674397007" rel="nofollow">20.1 MB<strong>kotlin-compiler-1.0.2.zip</strong></a></li> <li><a href="/misc/goto?guid=4958990365784621254" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4958990365893839599" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> </ul> <p> </p>