diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties
index 1e62dcdce8e..43956bc3f8b 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties
@@ -64,6 +64,8 @@ options.kotlin.attribute.descriptor.builtin.annotation=Modifier
options.kotlin.attribute.descriptor.string.escape=String//Escape in string and template braces
options.kotlin.attribute.descriptor.closure.braces=Braces and Operators//Lambda expression braces and arrow
options.kotlin.attribute.descriptor.safe.access=Braces and Operators//Safe access dot
+options.kotlin.attribute.descriptor.quest=Braces and Operators//Question after the type
+options.kotlin.attribute.descriptor.exclexcl=Braces and Operators//Non-null assertion
options.kotlin.attribute.descriptor.arrow=Braces and Operators//Arrow
options.kotlin.attribute.descriptor.colon=Braces and Operators//Colon
options.kotlin.attribute.descriptor.double.colon=Braces and Operators//Double colon
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/BeforeResolveHighlightingVisitor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/BeforeResolveHighlightingVisitor.kt
index c7780d27263..d88b30117de 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/BeforeResolveHighlightingVisitor.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/BeforeResolveHighlightingVisitor.kt
@@ -47,6 +47,7 @@ internal class BeforeResolveHighlightingVisitor(holder: AnnotationHolder) : High
}
}
elementType == KtTokens.SAFE_ACCESS -> KotlinHighlightingColors.SAFE_ACCESS
+ elementType == KtTokens.EXCLEXCL -> KotlinHighlightingColors.EXCLEXCL
else -> return
}
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighter.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighter.java
index ca4a4a87986..f1a7912df18 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighter.java
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlighter.java
@@ -72,6 +72,7 @@ public class KotlinHighlighter extends SyntaxHighlighterBase {
keys1.put(KtTokens.SEMICOLON, KotlinHighlightingColors.SEMICOLON);
keys1.put(KtTokens.COLON, KotlinHighlightingColors.COLON);
keys1.put(KtTokens.COLONCOLON, KotlinHighlightingColors.DOUBLE_COLON);
+ keys1.put(KtTokens.QUEST, KotlinHighlightingColors.QUEST);
keys1.put(KtTokens.DOT, KotlinHighlightingColors.DOT);
keys1.put(KtTokens.ARROW, KotlinHighlightingColors.ARROW);
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java
index c2a600a7bed..57c2d7e1e1e 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java
@@ -42,6 +42,8 @@ public class KotlinHighlightingColors {
public static final TextAttributesKey DOUBLE_COLON = createTextAttributesKey("KOTLIN_DOUBLE_COLON");
public static final TextAttributesKey DOT = createTextAttributesKey("KOTLIN_DOT", DefaultLanguageHighlighterColors.DOT);
public static final TextAttributesKey SAFE_ACCESS = createTextAttributesKey("KOTLIN_SAFE_ACCESS", DefaultLanguageHighlighterColors.DOT);
+ public static final TextAttributesKey QUEST = createTextAttributesKey("KOTLIN_QUEST");
+ public static final TextAttributesKey EXCLEXCL = createTextAttributesKey("KOTLIN_EXCLEXCL");
public static final TextAttributesKey ARROW = createTextAttributesKey("KOTLIN_ARROW", PARENTHESIS);
public static final TextAttributesKey LINE_COMMENT = createTextAttributesKey("KOTLIN_LINE_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT);
public static final TextAttributesKey BLOCK_COMMENT = createTextAttributesKey("KOTLIN_BLOCK_COMMENT", DefaultLanguageHighlighterColors.BLOCK_COMMENT);
diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt
index 7fb03ec491b..821a7de7dc7 100644
--- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt
@@ -45,8 +45,9 @@ class KotlinColorSettingsPage : ColorSettingsPage, RainbowColorSettingsPage {
*/
@Deprecated("Deprecated class")
private class MyClass<out T : Iterable<T>>(var prop1 : Int) {
- fun foo(nullable : String?, r : Runnable, f : () -> Int, fl : FunctionLike, dyn: dynamic) {
+ fun foo(nullable : String?, r : Runnable, f : () -> Int, fl : FunctionLike, dyn: dynamic) {
println("length\nis ${"$"}{nullable?.length} \e")
+ println(nullable!!.length)
val ints = java.util.ArrayList(2)
ints[0] = 102 + f() + fl()
val myFun = { -> "" };
@@ -128,6 +129,8 @@ var globalCountertest(s: String?) {
+ s!!.length
+}
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java
index e9956703625..8a78ca7bb30 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java
@@ -102,6 +102,12 @@ public class HighlightingTestGenerated extends AbstractHighlightingTest {
doTest(fileName);
}
+ @TestMetadata("NonNullAssertion.kt")
+ public void testNonNullAssertion() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/NonNullAssertion.kt");
+ doTest(fileName);
+ }
+
@TestMetadata("Object.kt")
public void testObject() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/Object.kt");