Underscore names are now forbidden

This commit is contained in:
Mikhail Glukhikh
2015-10-19 11:55:59 +03:00
parent f61aa18a05
commit 8d88109c00
8 changed files with 18 additions and 18 deletions
@@ -558,7 +558,7 @@ public interface Errors {
DiagnosticFactory1<JetSimpleNameExpression, JetType> COMPARE_TO_TYPE_MISMATCH = DiagnosticFactory1.create(ERROR);
DiagnosticFactory0<PsiElement> UNDERSCORE_IS_DEPRECATED = DiagnosticFactory0.create(WARNING);
DiagnosticFactory0<PsiElement> UNDERSCORE_IS_RESERVED = DiagnosticFactory0.create(ERROR);
DiagnosticFactory1<PsiElement, String> INVALID_CHARACTERS = DiagnosticFactory1.create(ERROR);
DiagnosticFactory0<PsiElement> INAPPLICABLE_OPERATOR_MODIFIER = DiagnosticFactory0.create(WARNING);
@@ -365,7 +365,7 @@ public class DefaultErrorMessages {
MAP.put(COMPARE_TO_TYPE_MISMATCH, "''compareTo()'' must return kotlin.Int, but returns {0}", RENDER_TYPE);
MAP.put(UNDERSCORE_IS_DEPRECATED, "Names _, __, ___, ..., are deprecated");
MAP.put(UNDERSCORE_IS_RESERVED, "Names _, __, ___, ..., are reserved in Kotlin");
MAP.put(INVALID_CHARACTERS, "Name {0}", STRING);
MAP.put(INAPPLICABLE_OPERATOR_MODIFIER, "'operator' modifier is inapplicable on this function");
@@ -30,7 +30,7 @@ object UnderscoreChecker : DeclarationChecker {
fun checkIdentifier(identifier: PsiElement?, diagnosticHolder: DiagnosticSink) {
if (identifier == null || identifier.text.isEmpty()) return
if (identifier.text.all { it == '_' }) {
diagnosticHolder.report(Errors.UNDERSCORE_IS_DEPRECATED.on(identifier))
diagnosticHolder.report(Errors.UNDERSCORE_IS_RESERVED.on(identifier))
}
}
@@ -102,7 +102,7 @@ class LazyImportResolver(
}
for ((alias, import) in explicitClassImports.entries()) {
if (alias.all { it == '_' }) {
traceForImportResolve.report(Errors.UNDERSCORE_IS_DEPRECATED.on(import))
traceForImportResolve.report(Errors.UNDERSCORE_IS_RESERVED.on(import))
}
}
for (alias in explicitClassImports.keySet()) {
+3 -3
View File
@@ -4,9 +4,9 @@ public open class Identifier() {
private var myNullable : Boolean = true
companion object {
open public fun init(isNullable : Boolean) : Identifier {
val __ = Identifier()
__.myNullable = isNullable
return __
val id = Identifier()
id.myNullable = isNullable
return id
}
}
}
+2 -2
View File
@@ -5,8 +5,8 @@ class Identifier<T>(t : T?, myHasDollar : Boolean) {
companion object {
open public fun <T> init(name : T?) : Identifier<T> {
val __ = Identifier<T>(name, false)
return __
val id = Identifier<T>(name, false)
return id
}
}
init {
+8 -8
View File
@@ -1,20 +1,20 @@
// !DIAGNOSTICS: -DEPRECATION
<!UNDERSCORE_IS_DEPRECATED!>import kotlin.Deprecated as ___<!>
<!UNDERSCORE_IS_RESERVED!>import kotlin.Deprecated as ___<!>
@___("") data class Pair(val x: Int, val y: Int)
class <!UNDERSCORE_IS_DEPRECATED!>_<!><<!UNDERSCORE_IS_DEPRECATED!>________<!>>
val <!UNDERSCORE_IS_DEPRECATED!>______<!> = _<Int>()
class <!UNDERSCORE_IS_RESERVED!>_<!><<!UNDERSCORE_IS_RESERVED!>________<!>>
val <!UNDERSCORE_IS_RESERVED!>______<!> = _<Int>()
fun <!UNDERSCORE_IS_DEPRECATED!>__<!>(<!UNDERSCORE_IS_DEPRECATED!>___<!>: Int, y: _<Int>?): Int {
val (x, <!UNDERSCORE_IS_DEPRECATED!>__________<!>) = Pair(___ - 1, 42)
val <!UNDERSCORE_IS_DEPRECATED!>____<!> = x
fun <!UNDERSCORE_IS_RESERVED!>__<!>(<!UNDERSCORE_IS_RESERVED!>___<!>: Int, y: _<Int>?): Int {
val (x, <!UNDERSCORE_IS_RESERVED!>__________<!>) = Pair(___ - 1, 42)
val <!UNDERSCORE_IS_RESERVED!>____<!> = x
// in backquotes: allowed
val `_` = __________
<!UNDERSCORE_IS_DEPRECATED!>__<!>@ return if (y != null) __(____, y) else __(`_`, ______)
<!UNDERSCORE_IS_RESERVED!>__<!>@ return if (y != null) __(____, y) else __(`_`, ______)
}
fun doIt(f: (Any?) -> Any?) = f(null)
val something = doIt { <!UNDERSCORE_IS_DEPRECATED!>__<!> -> __ }
val something = doIt { <!UNDERSCORE_IS_RESERVED!>__<!> -> __ }
@@ -330,7 +330,7 @@ public class QuickFixRegistrar : QuickFixContributor {
OPERATOR_MODIFIER_REQUIRED.registerFactory(AddModifierFixFactory(JetTokens.OPERATOR_KEYWORD))
INFIX_MODIFIER_REQUIRED.registerFactory(AddModifierFixFactory(JetTokens.INFIX_KEYWORD))
UNDERSCORE_IS_DEPRECATED.registerFactory(RenameUnderscoreFix)
UNDERSCORE_IS_RESERVED.registerFactory(RenameUnderscoreFix)
CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS.registerFactory(AddTypeToLHSOfCallableReferenceFix)