Index: runtime/vm/kernel_to_il.h |
diff --git a/runtime/vm/kernel_to_il.h b/runtime/vm/kernel_to_il.h |
index 959197744ac81bf629441c604af5ff272aac5596..20a7ceabc81910bfb793b54d7f855b683fd6fea4 100644 |
--- a/runtime/vm/kernel_to_il.h |
+++ b/runtime/vm/kernel_to_il.h |
@@ -239,25 +239,6 @@ class ActiveClassScope { |
active_class_->member = NULL; |
} |
- |
- ActiveClassScope(ActiveClass* active_class, |
- Class* kernel_class, |
- const dart::Class* klass) |
- : active_class_(active_class), saved_(*active_class) { |
- active_class_->kernel_class = kernel_class; |
- active_class_->klass = klass; |
- active_class_->member = NULL; |
- |
- if (kernel_class != NULL) { |
- List<TypeParameter>& type_parameters = kernel_class->type_parameters(); |
- active_class_->class_type_parameters = type_parameters.length(); |
- active_class_->class_type_parameters_offset_start = |
- active_class_->class_type_parameters > 0 |
- ? type_parameters[0]->kernel_offset() |
- : -1; |
- } |
- } |
- |
~ActiveClassScope() { *active_class_ = saved_; } |
private: |
@@ -283,35 +264,6 @@ class ActiveMemberScope { |
member_type_parameters_offset_start; |
} |
- ActiveMemberScope(ActiveClass* active_class, Member* member) |
- : active_class_(active_class), saved_(*active_class) { |
- // The class and kernel_class is inherited. |
- active_class_->member = member; |
- |
- active_class_->member_is_procedure = false; |
- active_class_->member_is_factory_procedure = false; |
- active_class_->member_type_parameters = 0; |
- active_class_->member_type_parameters_offset_start = -1; |
- |
- if (member == NULL || !member->IsProcedure()) { |
- return; |
- } |
- |
- Procedure* procedure = Procedure::Cast(member); |
- active_class_->member_is_procedure = true; |
- active_class->member_is_factory_procedure = |
- procedure->kind() == Procedure::kFactory; |
- if (procedure->function() != NULL) { |
- TypeParameterList& type_parameters = |
- procedure->function()->type_parameters(); |
- if (type_parameters.length() > 0) { |
- active_class_->member_type_parameters = type_parameters.length(); |
- active_class_->member_type_parameters_offset_start = |
- type_parameters.first_offset; |
- } |
- } |
- } |
- |
~ActiveMemberScope() { *active_class_ = saved_; } |
private: |
@@ -407,6 +359,7 @@ class TranslationHelper { |
const dart::String& DartGetterName(NameIndex parent, StringIndex getter); |
const dart::String& DartFieldName(Name* kernel_name); |
+ const dart::String& DartFieldName(NameIndex parent, StringIndex field); |
const dart::String& DartInitializerName(Name* kernel_name); |
@@ -456,99 +409,6 @@ class TranslationHelper { |
TypedData& canonical_names_; |
}; |
-// Regarding malformed types: |
-// The spec says in section "19.1 Static Types" roughly: |
-// |
-// A type T is malformed iff: |
-// * T does not denote a type in scope |
-// * T refers to a type parameter in a static member |
-// * T is a parametrized Type G<T1, ...> and G is malformed |
-// * T denotes declarations from multiple imports |
-// |
-// Any use of a malformed type gives rise to a static warning. A malformed |
-// type is then interpreted as dynamic by the static type checker and the |
-// runtime unless explicitly specified otherwise. |
-class DartTypeTranslator : public DartTypeVisitor { |
- public: |
- DartTypeTranslator(TranslationHelper* helper, |
- ActiveClass* active_class, |
- bool finalize = false) |
- : translation_helper_(*helper), |
- active_class_(active_class), |
- type_parameter_scope_(NULL), |
- zone_(helper->zone()), |
- result_(AbstractType::Handle(helper->zone())), |
- finalize_(finalize) {} |
- |
- // Can return a malformed type. |
- AbstractType& TranslateType(DartType* node); |
- |
- // Can return a malformed type. |
- AbstractType& TranslateTypeWithoutFinalization(DartType* node); |
- |
- // Is guaranteed to be not malformed. |
- const AbstractType& TranslateVariableType(VariableDeclaration* variable); |
- |
- |
- virtual void VisitDefaultDartType(DartType* node) { UNREACHABLE(); } |
- |
- virtual void VisitInvalidType(InvalidType* node); |
- |
- virtual void VisitFunctionType(FunctionType* node); |
- |
- virtual void VisitTypeParameterType(TypeParameterType* node); |
- |
- virtual void VisitInterfaceType(InterfaceType* node); |
- |
- virtual void VisitDynamicType(DynamicType* node); |
- |
- virtual void VisitVoidType(VoidType* node); |
- |
- virtual void VisitBottomType(BottomType* node); |
- |
- // Will return `TypeArguments::null()` in case any of the arguments are |
- // malformed. |
- const TypeArguments& TranslateInstantiatedTypeArguments( |
- const dart::Class& receiver_class, |
- DartType** receiver_type_arguments, |
- intptr_t length); |
- |
- // Will return `TypeArguments::null()` in case any of the arguments are |
- // malformed. |
- const TypeArguments& TranslateTypeArguments(DartType** dart_types, |
- intptr_t length); |
- |
- const Type& ReceiverType(const dart::Class& klass); |
- |
- private: |
- class TypeParameterScope { |
- public: |
- TypeParameterScope(DartTypeTranslator* translator, |
- List<TypeParameter>* parameters) |
- : parameters_(parameters), |
- outer_(translator->type_parameter_scope_), |
- translator_(translator) { |
- translator_->type_parameter_scope_ = this; |
- } |
- ~TypeParameterScope() { translator_->type_parameter_scope_ = outer_; } |
- |
- TypeParameterScope* outer() const { return outer_; } |
- List<TypeParameter>* parameters() const { return parameters_; } |
- |
- private: |
- List<TypeParameter>* parameters_; |
- TypeParameterScope* outer_; |
- DartTypeTranslator* translator_; |
- }; |
- |
- TranslationHelper& translation_helper_; |
- ActiveClass* active_class_; |
- TypeParameterScope* type_parameter_scope_; |
- Zone* zone_; |
- AbstractType& result_; |
- bool finalize_; |
-}; |
- |
struct FunctionScope { |
intptr_t kernel_offset; |
@@ -865,14 +725,12 @@ class FlowGraphBuilder { |
CatchBlock* catch_block_; |
ActiveClass active_class_; |
- DartTypeTranslator type_translator_; |
StreamingFlowGraphBuilder* streaming_flow_graph_builder_; |
friend class BreakableBlock; |
friend class CatchBlock; |
friend class ConstantEvaluator; |
- friend class DartTypeTranslator; |
friend class StreamingFlowGraphBuilder; |
friend class ScopeBuilder; |
friend class SwitchBlock; |
@@ -988,11 +846,9 @@ class TryCatchBlock { |
class TryFinallyBlock { |
public: |
TryFinallyBlock(FlowGraphBuilder* builder, |
- Statement* finalizer, |
intptr_t finalizer_kernel_offset) |
: builder_(builder), |
outer_(builder->try_finally_block_), |
- finalizer_(finalizer), |
finalizer_kernel_offset_(finalizer_kernel_offset), |
context_depth_(builder->context_depth_), |
// Finalizers are executed outside of the try block hence |
@@ -1004,7 +860,6 @@ class TryFinallyBlock { |
} |
~TryFinallyBlock() { builder_->try_finally_block_ = outer_; } |
- Statement* finalizer() const { return finalizer_; } |
intptr_t finalizer_kernel_offset() const { return finalizer_kernel_offset_; } |
intptr_t context_depth() const { return context_depth_; } |
intptr_t try_depth() const { return try_depth_; } |
@@ -1014,7 +869,6 @@ class TryFinallyBlock { |
private: |
FlowGraphBuilder* const builder_; |
TryFinallyBlock* const outer_; |
- Statement* const finalizer_; |
intptr_t finalizer_kernel_offset_; |
const intptr_t context_depth_; |
const intptr_t try_depth_; |