diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index a0fadad9363..422ffa7f1c9 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -11870,6 +11870,19 @@ public class AST2CPPTests extends AST2TestBase { assertTrue(test.getType() instanceof IProblemType); // resolution is ambiguous } + // namespace N { + // class Color {}; + // Color operator"" _color(const char*, unsigned long); + // } + // void setColor(N::Color); + // int main() { + // using namespace N; + // setColor("#ffffff"_color); // ERROR + // } + public void testUserDefinedLiteralInNamespace_510665() throws Exception { + parseAndCheckBindings(); + } + // double waldo1 = 02.968; // double waldo2 = 09.268; // double waldo3 = 02e2; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java index 4a301a5ecf7..6ce4dd118b9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java @@ -3181,7 +3181,8 @@ public class CPPSemantics { * */ int kind = exp.getKind(); - IBinding[] bindings = findBindings(exp.getTranslationUnit().getScope(), ((CPPASTLiteralExpression) exp).getOperatorName(), false); + IScope lookupScope = CPPVisitor.getContainingScope(exp); + IBinding[] bindings = findBindings(lookupScope, ((CPPASTLiteralExpression) exp).getOperatorName(), false); ICPPFunction[] funcs = new ICPPFunction[bindings.length]; ICPPFunctionTemplate[] tplFunctions = new ICPPFunctionTemplate[bindings.length]; LookupData data = new LookupData(((CPPASTLiteralExpression) exp).getOperatorName(), null, exp);