From bd6da0b03dcdbb7989fa195469a2a44eb00f467b Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 4 Jun 2017 18:56:31 -0400 Subject: [PATCH] Bug 486082 - Have ProblemBindingChecker report errors of type IProblemBinding.SEMANTIC_INVALID_TYPE Change-Id: I58f27a8783ea0dca53da5b45c2da11c6623892fd --- .../cdt/codan/internal/checkers/ProblemBindingChecker.java | 4 ++++ .../core/internal/checkers/ProblemBindingCheckerTest.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ProblemBindingChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ProblemBindingChecker.java index ce8ade13d87..60e64e791fb 100644 --- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ProblemBindingChecker.java +++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ProblemBindingChecker.java @@ -143,6 +143,10 @@ public class ProblemBindingChecker extends AbstractIndexAstChecker { reportProblem(ERR_ID_InvalidTemplateArgumentsProblem, templateName, contextFlagsString); return PROCESS_CONTINUE; } + if (id == IProblemBinding.SEMANTIC_INVALID_TYPE) { + reportProblem(ERR_ID_TypeResolutionProblem, name, name.getRawSignature(), contextFlagsString); + return PROCESS_CONTINUE; + } // From this point, we'll deal only with NAME_NOT_FOUND problems. // If it's something else continue because we don't want to give bad messages. if (id != IProblemBinding.SEMANTIC_NAME_NOT_FOUND) { diff --git a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/ProblemBindingCheckerTest.java b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/ProblemBindingCheckerTest.java index 88ea2dd1e69..292f46c5a59 100644 --- a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/ProblemBindingCheckerTest.java +++ b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/ProblemBindingCheckerTest.java @@ -117,4 +117,11 @@ public class ProblemBindingCheckerTest extends CheckerTestCase { loadCodeAndRun(getAboveComment()); checkErrorLine(2, ProblemBindingChecker.ERR_ID_InvalidArguments); } + + // template class Waldo {}; + // Waldo w; + public void testInvalidTypeError_486082() throws Exception { + loadCodeAndRun(getAboveComment()); + checkErrorLine(2, ProblemBindingChecker.ERR_ID_TypeResolutionProblem); + } }