ResolveResult Resolve(string prog, ExpressionResult er, string marker) { Register(prog); int line, column; GetPos(prog, marker, out line, out column); er.Region = new DomRegion(line, column); BooResolver r = new BooResolver(); return(r.Resolve(er, ParserService.GetParseInformation(fileName), prog)); }
public override void OnArrayLiteralExpression(ArrayLiteralExpression node) { BooResolver resolver = new BooResolver(); IReturnType createType = resolver.GetTypeOfExpression(node, null); if (createType == null) { createType = pc.SystemTypes.Object; } CodeExpression[] initializers = new CodeExpression[node.Items.Count]; for (int i = 0; i < initializers.Length; i++) { _expression = null; node.Items[i].Accept(this); initializers[i] = _expression; } _expression = new CodeArrayCreateExpression(createType.FullyQualifiedName, initializers); _expression.UserData["unknownType"] = node.Type != null; }
void CtrlSpace(string[] unExpected, string prog, params string[] expected) { Register(prog); int line, column; GetPos(prog, "/*mark*/", out line, out column); BooResolver r = new BooResolver(); var ar = r.CtrlSpace(line, column, ParserService.GetParseInformation(fileName), prog, ExpressionContext.Default); foreach (string e in unExpected) { foreach (object o in ar) { if (e.Equals(o)) { Assert.Fail("Didn't expect " + e); } if (o is IMember && (o as IMember).Name == e) { Assert.Fail("Didn't expect " + e); } if (o is IClass && (o as IClass).Name == e) { Assert.Fail("Didn't expect " + e); } } } foreach (string e in expected) { bool ok = false; foreach (object o in ar) { if (e.Equals(o)) { if (ok) { Assert.Fail("double entry " + e); } ok = true; } if (o is IMember && (o as IMember).Name == e) { if (ok) { Assert.Fail("double entry " + e); } ok = true; } if (o is IClass && (o as IClass).Name == e) { if (ok) { Assert.Fail("double entry " + e); } ok = true; } } if (!ok) { Assert.Fail("Expected " + e); } } }