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

Unified Diff: runtime/lib/mirrors.cc

Issue 1815733003: Remove recently introduced FunctionType vm class by merging it into class Type. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: address comment Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/lib/type_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/lib/mirrors.cc
diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc
index aaa28e187a4fd5feb5e023269db83ec0a27a2af9..d24f75c992f6cc2c9502d72a34afc7faaf0a3b38 100644
--- a/runtime/lib/mirrors.cc
+++ b/runtime/lib/mirrors.cc
@@ -253,8 +253,8 @@ static RawInstance* CreateTypedefMirror(const Class& cls,
static RawInstance* CreateFunctionTypeMirror(const AbstractType& type) {
ASSERT(type.IsFunctionType());
- const Class& cls = Class::Handle(FunctionType::Cast(type).scope_class());
- const Function& func = Function::Handle(FunctionType::Cast(type).signature());
+ const Class& cls = Class::Handle(Type::Cast(type).type_class());
+ const Function& func = Function::Handle(Type::Cast(type).signature());
const Array& args = Array::Handle(Array::New(3));
args.SetAt(0, MirrorReference::Handle(MirrorReference::New(cls)));
args.SetAt(1, MirrorReference::Handle(MirrorReference::New(func)));
@@ -543,8 +543,7 @@ static RawInstance* CreateTypeMirror(const AbstractType& type) {
ASSERT(type.IsCanonical() || type.IsTypeParameter() || type.IsBoundedType());
if (type.IsFunctionType()) {
- const Class& scope_class =
- Class::Handle(FunctionType::Cast(type).scope_class());
+ const Class& scope_class = Class::Handle(Type::Cast(type).type_class());
if (scope_class.IsTypedefClass()) {
return CreateTypedefMirror(scope_class,
type, Bool::False(), Object::null_instance());
@@ -826,7 +825,7 @@ DEFINE_NATIVE_ENTRY(Mirrors_makeLocalClassMirror, 1) {
GET_NON_NULL_NATIVE_ARGUMENT(AbstractType, type, arguments->NativeArgAt(0));
PROPAGATE_IF_MALFORMED(type);
ASSERT(type.IsFinalized());
- ASSERT(type.IsFunctionType() || type.HasResolvedTypeClass());
+ ASSERT(type.HasResolvedTypeClass());
const Class& cls = Class::Handle(type.type_class());
ASSERT(!cls.IsNull());
if (cls.IsDynamicClass() || cls.IsVoidClass() || cls.IsTypedefClass()) {
@@ -1285,8 +1284,9 @@ DEFINE_NATIVE_ENTRY(Mirrors_evalInLibraryWithPrivateKey, 2) {
}
DEFINE_NATIVE_ENTRY(TypedefMirror_declaration, 1) {
- GET_NON_NULL_NATIVE_ARGUMENT(FunctionType, type, arguments->NativeArgAt(0));
- const Class& cls = Class::Handle(type.scope_class());
+ GET_NON_NULL_NATIVE_ARGUMENT(Type, type, arguments->NativeArgAt(0));
+ ASSERT(type.IsFunctionType());
+ const Class& cls = Class::Handle(type.type_class());
ASSERT(cls.IsTypedefClass());
return CreateTypedefMirror(cls,
AbstractType::Handle(cls.DeclarationType()),
@@ -2043,20 +2043,21 @@ DEFINE_NATIVE_ENTRY(DeclarationMirror_location, 1) {
DEFINE_NATIVE_ENTRY(TypedefMirror_referent, 1) {
- GET_NON_NULL_NATIVE_ARGUMENT(FunctionType, type, arguments->NativeArgAt(0));
- const Class& cls = Class::Handle(type.scope_class());
+ GET_NON_NULL_NATIVE_ARGUMENT(Type, type, arguments->NativeArgAt(0));
+ ASSERT(type.IsFunctionType());
+ const Class& cls = Class::Handle(type.type_class());
ASSERT(cls.IsTypedefClass());
const Function& sig_func = Function::Handle(cls.signature_function());
- FunctionType& referent_type = FunctionType::Handle(sig_func.SignatureType());
+ Type& referent_type = Type::Handle(sig_func.SignatureType());
// If the scope class of the function type is not generic, replace it with
// Closure class (Function::SignatureType() keeps it).
- ASSERT(cls.raw() == referent_type.scope_class());
+ ASSERT(cls.raw() == referent_type.type_class());
if (!cls.IsGeneric()) {
- referent_type = FunctionType::New(
+ referent_type = Type::New(
Class::Handle(Isolate::Current()->object_store()->closure_class()),
TypeArguments::Handle(referent_type.arguments()),
- sig_func,
referent_type.token_pos());
+ referent_type.set_signature(sig_func);
referent_type ^= ClassFinalizer::FinalizeType(
cls, referent_type, ClassFinalizer::kCanonicalize);
}
« no previous file with comments | « no previous file | runtime/lib/type_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698