Fixed assertion error for incomplete code.

This commit is contained in:
Svetlana Isakova
2014-03-13 15:46:43 +04:00
parent 904217d793
commit 604e062f91
3 changed files with 16 additions and 5 deletions
@@ -79,12 +79,14 @@ public class PseudocodeVariableDataCollector(
if (instruction is VariableDeclarationInstruction) { if (instruction is VariableDeclarationInstruction) {
val variableDeclarationElement = instruction.getVariableDeclarationElement() val variableDeclarationElement = instruction.getVariableDeclarationElement()
val descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, variableDeclarationElement) val descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, variableDeclarationElement)
if (descriptor != null) {
assert(descriptor is VariableDescriptor, assert(descriptor is VariableDescriptor,
"Variable descriptor should correspond to the instruction for ${instruction.getElement().getText()}.\n" + "Variable descriptor should correspond to the instruction for ${instruction.getElement().getText()}.\n" +
"Descriptor : $descriptor") "Descriptor : $descriptor")
lexicalScopeVariableInfo.registerVariableDeclaredInScope( lexicalScopeVariableInfo.registerVariableDeclaredInScope(
descriptor as VariableDescriptor, instruction.getLexicalScope()) descriptor as VariableDescriptor, instruction.getLexicalScope())
} }
}
}) })
return lexicalScopeVariableInfo return lexicalScopeVariableInfo
} }
@@ -0,0 +1,4 @@
fun foo(s: String) {
s.
<!ILLEGAL_SELECTOR!>val b = 42<!>
}
@@ -3416,6 +3416,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest("compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt"); doTest("compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt");
} }
@TestMetadata("variableDeclarationInSelector.kt")
public void testVariableDeclarationInSelector() throws Exception {
doTest("compiler/testData/diagnostics/tests/incompleteCode/variableDeclarationInSelector.kt");
}
@TestMetadata("compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError") @TestMetadata("compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError")
public static class DiagnosticWithSyntaxError extends AbstractJetDiagnosticsTest { public static class DiagnosticWithSyntaxError extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInDiagnosticWithSyntaxError() throws Exception { public void testAllFilesPresentInDiagnosticWithSyntaxError() throws Exception {