Files
sdk/runtime/vm/ast_printer_test.cc
T
iposva@google.com 4c07af2487 - Ensure that all names in local scopes are symbols.
- Avoid calling Equals when comparing names in local scopes.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//190753004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33443 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 19:37:04 +00:00

40 lines
1.3 KiB
C++

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#include "platform/assert.h"
#include "vm/ast_printer.h"
#include "vm/heap.h"
#include "vm/isolate.h"
#include "vm/object.h"
#include "vm/object_store.h"
#include "vm/unit_test.h"
namespace dart {
TEST_CASE(AstPrinter) {
const intptr_t kPos = Scanner::kNoSourcePos;
LocalVariable* v =
new LocalVariable(kPos,
String::ZoneHandle(Symbols::New("wurscht")),
Type::ZoneHandle(Type::DynamicType()));
v->set_index(5);
LoadLocalNode* ll = new LoadLocalNode(kPos, v);
ReturnNode* r = new ReturnNode(kPos, ll);
AstPrinter::PrintNode(r);
AstNode* l = new LiteralNode(kPos, Smi::ZoneHandle(Smi::New(3)));
ReturnNode* rl = new ReturnNode(kPos, l);
AstPrinter::PrintNode(rl);
AstPrinter::PrintNode(new ReturnNode(kPos));
AstPrinter::PrintNode(new BinaryOpNode(kPos,
Token::kADD,
new LiteralNode(kPos, Smi::ZoneHandle(Smi::New(3))),
new LiteralNode(kPos, Smi::ZoneHandle(Smi::New(5)))));
AstPrinter::PrintNode(new UnaryOpNode(kPos, Token::kNEGATE, ll));
}
} // namespace dart