From eb710395df37f75505bcd0d5a9e6216b4673d753 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Tue, 5 Jan 2016 01:29:50 -0800 Subject: [PATCH] Fix Ruby Block arguments and make them lexicalish. --- Replace.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Replace.cpp b/Replace.cpp index f84d7e3..46dd8bb 100644 --- a/Replace.cpp +++ b/Replace.cpp @@ -967,7 +967,10 @@ CYIdentifierFlags *CYScope::Declare(CYContext &context, CYIdentifier *identifier else if (existing->kind_ == CYIdentifierGlobal || existing->kind_ == CYIdentifierMagic) existing->kind_ = kind; else if (existing->kind_ == CYIdentifierLexical || kind == CYIdentifierLexical) - _assert(false); // XXX: throw new SyntaxError() + _assert(false); + else if (transparent_ && existing->kind_ == CYIdentifierArgument && kind == CYIdentifierVariable) + _assert(false); + // XXX: throw new SyntaxError() instead of these asserts return existing; } @@ -1005,10 +1008,6 @@ void CYScope::Close(CYContext &context) { CYForEach (i, internal_) { _assert(i->identifier_->next_ == i->identifier_); switch (i->kind_) { - case CYIdentifierArgument: { - _assert(!transparent_); - } break; - case CYIdentifierLexical: { if (!damaged_) { CYIdentifier *replace(context.Unique()); -- 2.49.0