]> git.saurik.com Git - cycript.git/blobdiff - Console.cpp
Move scoping to CYDeclaration::Assignment from Replace.
[cycript.git] / Console.cpp
index df7d57b34165b994a3c889ebd69ead5dc2985ae7..c6e13cb6f4504abca48615cb5f4110557b545bed 100644 (file)
@@ -211,7 +211,7 @@ static CYExpression *ParseExpression(CYUTF8String code) {
     Setup(driver, parser);
 
     if (parser.parse() != 0 || !driver.errors_.empty())
-        _assert(false);
+        return NULL;
 
     CYExpress *express(dynamic_cast<CYExpress *>(driver.program_->statements_));
     _assert(express != NULL);
@@ -264,7 +264,7 @@ static char **Complete(const char *word, int start, int end) {
 
         case CYDriver::AutoMessage: {
             CYDriver::Context &thing(driver.contexts_.back());
-            expression = $M($M($ CYIndirect(thing.context_), $S("isa")), $S("messages"));
+            expression = $M($C1($V("object_getClass"), thing.context_), $S("messages"));
             for (CYDriver::Context::Words::const_iterator part(thing.words_.begin()); part != thing.words_.end(); ++part)
                 prefix << (*part)->word_ << ':';
         } break;
@@ -297,6 +297,9 @@ static char **Complete(const char *word, int start, int end) {
     CYUTF8String json(Run(pool, client_, code));
 
     CYExpression *result(ParseExpression(json));
+    if (result == NULL)
+        return NULL;
+
     CYArray *array(dynamic_cast<CYArray *>(result));
 
     if (array == NULL) {