Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Issue 103913005: Introduce class TypeRef in the VM to fully support recursive types. (Closed)

Created:
7 years ago by regis
Modified:
7 years ago
Reviewers:
rmacnak, srdjan, hausner, siva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Introduce class TypeRef in the VM to fully support recursive types. Fix issues 15244, 15148, 14869, 14000, and 13688 (was closed, but fragile). Note that the current solution is not final as it may not be correct in more complex cases not yet covered by language tests. The final solution will require a 'trail' instead of a simple mark bit to prevent operations involving recursive types to diverge. R=asiva@google.com Committed: https://code.google.com/p/dart/source/detail?r=31087

Patch Set 1 #

Total comments: 8

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+572 lines, -172 lines) Patch
M pkg/pkg.status View 1 1 chunk +1 line, -1 line 0 comments Download
M runtime/lib/mirrors.cc View 1 3 chunks +3 lines, -0 lines 0 comments Download
M runtime/lib/type_patch.dart View 1 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/ast.h View 1 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/class_finalizer.h View 1 3 chunks +14 lines, -11 lines 0 comments Download
M runtime/vm/class_finalizer.cc View 1 19 chunks +155 lines, -108 lines 0 comments Download
M runtime/vm/object.h View 1 2 chunks +61 lines, -1 line 0 comments Download
M runtime/vm/object.cc View 1 20 chunks +202 lines, -33 lines 0 comments Download
M runtime/vm/object_store.h View 1 2 chunks +4 lines, -0 lines 0 comments Download
M runtime/vm/parser.cc View 1 7 chunks +9 lines, -12 lines 0 comments Download
M runtime/vm/raw_object.h View 1 3 chunks +17 lines, -1 line 0 comments Download
M runtime/vm/raw_object.cc View 1 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/raw_object_snapshot.cc View 1 1 chunk +48 lines, -0 lines 0 comments Download
M runtime/vm/snapshot.h View 1 3 chunks +3 lines, -0 lines 0 comments Download
M runtime/vm/snapshot.cc View 1 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/symbols.h View 1 1 chunk +1 line, -0 lines 0 comments Download
A tests/language/cyclic_type_test.dart View 1 1 chunk +32 lines, -0 lines 0 comments Download
M tests/language/language.status View 1 1 chunk +0 lines, -2 lines 0 comments Download
M tests/language/language_dart2js.status View 1 4 chunks +2 lines, -2 lines 0 comments Download
M tests/lib/lib.status View 1 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 6 (0 generated)
regis
It's like Christmas: there is a bit for everyone. Feel free to review just the ...
7 years ago (2013-12-11 02:48:04 UTC) #1
hausner
No objections from me. Maybe a quick explanation in person would help to understand how ...
7 years ago (2013-12-11 18:37:42 UTC) #2
rmacnak
Let's add asserts against TypeRefs becoming reflectees. https://codereview.chromium.org/103913005/diff/1/runtime/lib/mirrors.cc File runtime/lib/mirrors.cc (right): https://codereview.chromium.org/103913005/diff/1/runtime/lib/mirrors.cc#newcode339 runtime/lib/mirrors.cc:339: ASSERT(!type.IsTypeRef()); https://codereview.chromium.org/103913005/diff/1/runtime/lib/mirrors.cc#newcode385 ...
7 years ago (2013-12-11 19:32:06 UTC) #3
siva
lgtm https://codereview.chromium.org/103913005/diff/1/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/103913005/diff/1/runtime/vm/object.cc#newcode3937 runtime/vm/object.cc:3937: AbstractType& type = AbstractType::Handle(); AbstractType::Handle(isolate); as you already ...
7 years ago (2013-12-11 21:14:08 UTC) #4
regis
Thanks! https://codereview.chromium.org/103913005/diff/1/runtime/lib/mirrors.cc File runtime/lib/mirrors.cc (right): https://codereview.chromium.org/103913005/diff/1/runtime/lib/mirrors.cc#newcode339 runtime/lib/mirrors.cc:339: On 2013/12/11 19:32:07, Ryan Macnak wrote: > ASSERT(!type.IsTypeRef()); ...
7 years ago (2013-12-11 22:47:46 UTC) #5
regis
7 years ago (2013-12-11 22:51:30 UTC) #6
Message was sent while issue was closed.
Committed patchset #2 manually as r31087 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698