| Index: runtime/vm/kernel_to_il.h
|
| diff --git a/runtime/vm/kernel_to_il.h b/runtime/vm/kernel_to_il.h
|
| index 83f104f861090edb2554e20bac0875451375dd51..8bcfac5677c47f27157a5b458094ccd6055c88ee 100644
|
| --- a/runtime/vm/kernel_to_il.h
|
| +++ b/runtime/vm/kernel_to_il.h
|
| @@ -282,34 +282,39 @@ class TranslationHelper {
|
|
|
| // Access to strings.
|
| const TypedData& string_offsets() { return string_offsets_; }
|
| - void SetStringOffsets(const TypedData& string_data);
|
| + void SetStringOffsets(const TypedData& string_offsets);
|
|
|
| const TypedData& string_data() { return string_data_; }
|
| void SetStringData(const TypedData& string_data);
|
|
|
| + const TypedData& canonical_names() { return canonical_names_; }
|
| + void SetCanonicalNames(const TypedData& canonical_names);
|
| +
|
| intptr_t StringOffset(intptr_t string_index) const;
|
| intptr_t StringSize(intptr_t string_index) const;
|
| uint8_t CharacterAt(intptr_t string_index, intptr_t index);
|
| bool StringEquals(intptr_t string_index, const char* other);
|
|
|
| - // Predicates on CanonicalNames.
|
| - bool IsAdministrative(CanonicalName* name);
|
| - bool IsPrivate(CanonicalName* name);
|
| - bool IsRoot(CanonicalName* name);
|
| - bool IsLibrary(CanonicalName* name);
|
| - bool IsClass(CanonicalName* name);
|
| - bool IsMember(CanonicalName* name);
|
| - bool IsField(CanonicalName* name);
|
| - bool IsConstructor(CanonicalName* name);
|
| - bool IsProcedure(CanonicalName* name);
|
| - bool IsMethod(CanonicalName* name);
|
| - bool IsGetter(CanonicalName* name);
|
| - bool IsSetter(CanonicalName* name);
|
| - bool IsFactory(CanonicalName* name);
|
| + // Accessors and predicates for canonical names.
|
| + intptr_t CanonicalNameParent(intptr_t name);
|
| + intptr_t CanonicalNameString(intptr_t name);
|
| + bool IsAdministrative(intptr_t name);
|
| + bool IsPrivate(intptr_t name);
|
| + bool IsRoot(intptr_t name);
|
| + bool IsLibrary(intptr_t name);
|
| + bool IsClass(intptr_t name);
|
| + bool IsMember(intptr_t name);
|
| + bool IsField(intptr_t name);
|
| + bool IsConstructor(intptr_t name);
|
| + bool IsProcedure(intptr_t name);
|
| + bool IsMethod(intptr_t name);
|
| + bool IsGetter(intptr_t name);
|
| + bool IsSetter(intptr_t name);
|
| + bool IsFactory(intptr_t name);
|
|
|
| // For a member (field, constructor, or procedure) return the canonical name
|
| // of the enclosing class or library.
|
| - CanonicalName* EnclosingName(CanonicalName* name);
|
| + intptr_t EnclosingName(intptr_t name);
|
|
|
| RawInstance* Canonicalize(const Instance& instance);
|
|
|
| @@ -334,41 +339,41 @@ class TranslationHelper {
|
| dart::String& DartSymbol(intptr_t string_index) const;
|
| dart::String& DartSymbol(const uint8_t* utf8_array, intptr_t len) const;
|
|
|
| - const dart::String& DartClassName(CanonicalName* kernel_class);
|
| + const dart::String& DartClassName(intptr_t kernel_class);
|
|
|
| - const dart::String& DartConstructorName(CanonicalName* constructor);
|
| + const dart::String& DartConstructorName(intptr_t constructor);
|
|
|
| - const dart::String& DartProcedureName(CanonicalName* procedure);
|
| + const dart::String& DartProcedureName(intptr_t procedure);
|
|
|
| - const dart::String& DartSetterName(CanonicalName* setter);
|
| + const dart::String& DartSetterName(intptr_t setter);
|
| const dart::String& DartSetterName(Name* setter_name);
|
|
|
| - const dart::String& DartGetterName(CanonicalName* getter);
|
| + const dart::String& DartGetterName(intptr_t getter);
|
| const dart::String& DartGetterName(Name* getter_name);
|
|
|
| const dart::String& DartFieldName(Name* kernel_name);
|
|
|
| const dart::String& DartInitializerName(Name* kernel_name);
|
|
|
| - const dart::String& DartMethodName(CanonicalName* method);
|
| + const dart::String& DartMethodName(intptr_t method);
|
| const dart::String& DartMethodName(Name* method_name);
|
|
|
| - const dart::String& DartFactoryName(CanonicalName* factory);
|
| + const dart::String& DartFactoryName(intptr_t factory);
|
|
|
| const Array& ArgumentNames(List<NamedExpression>* named);
|
|
|
| // A subclass overrides these when reading in the Kernel program in order to
|
| // support recursive type expressions (e.g. for "implements X" ...
|
| // annotations).
|
| - virtual RawLibrary* LookupLibraryByKernelLibrary(CanonicalName* library);
|
| - virtual RawClass* LookupClassByKernelClass(CanonicalName* klass);
|
| + virtual RawLibrary* LookupLibraryByKernelLibrary(intptr_t library);
|
| + virtual RawClass* LookupClassByKernelClass(intptr_t klass);
|
|
|
| - RawField* LookupFieldByKernelField(CanonicalName* field);
|
| - RawFunction* LookupStaticMethodByKernelProcedure(CanonicalName* procedure);
|
| - RawFunction* LookupConstructorByKernelConstructor(CanonicalName* constructor);
|
| + RawField* LookupFieldByKernelField(intptr_t field);
|
| + RawFunction* LookupStaticMethodByKernelProcedure(intptr_t procedure);
|
| + RawFunction* LookupConstructorByKernelConstructor(intptr_t constructor);
|
| dart::RawFunction* LookupConstructorByKernelConstructor(
|
| const dart::Class& owner,
|
| - CanonicalName* constructor);
|
| + intptr_t constructor);
|
|
|
| dart::Type& GetCanonicalType(const dart::Class& klass);
|
|
|
| @@ -380,13 +385,13 @@ class TranslationHelper {
|
| // if asked. The result will be available in [name_to_modify] and it is also
|
| // returned. If the name is private, the canonical name [parent] will be used
|
| // to get the import URI of the library where the name is visible.
|
| - dart::String& ManglePrivateName(CanonicalName* parent,
|
| + dart::String& ManglePrivateName(intptr_t parent,
|
| dart::String* name_to_modify,
|
| bool symbolize = true);
|
|
|
| - const dart::String& DartSetterName(CanonicalName* parent, intptr_t setter);
|
| - const dart::String& DartGetterName(CanonicalName* parent, intptr_t getter);
|
| - const dart::String& DartMethodName(CanonicalName* parent, intptr_t method);
|
| + const dart::String& DartSetterName(intptr_t parent, intptr_t setter);
|
| + const dart::String& DartGetterName(intptr_t parent, intptr_t getter);
|
| + const dart::String& DartMethodName(intptr_t parent, intptr_t method);
|
|
|
| Thread* thread_;
|
| Zone* zone_;
|
| @@ -395,6 +400,7 @@ class TranslationHelper {
|
|
|
| TypedData& string_offsets_;
|
| TypedData& string_data_;
|
| + TypedData& canonical_names_;
|
| };
|
|
|
| // Regarding malformed types:
|
| @@ -859,8 +865,7 @@ class FlowGraphBuilder : public ExpressionVisitor, public StatementVisitor {
|
|
|
| Fragment TranslateInitializers(Class* kernel_class,
|
| List<Initializer>* initialiers);
|
| - Fragment TranslateFieldInitializer(CanonicalName* canonical_name,
|
| - Expression* init);
|
| + Fragment TranslateFieldInitializer(intptr_t canonical_name, Expression* init);
|
|
|
| Fragment TranslateStatement(Statement* statement);
|
| Fragment TranslateCondition(Expression* expression, bool* negate);
|
| @@ -990,7 +995,7 @@ class FlowGraphBuilder : public ExpressionVisitor, public StatementVisitor {
|
| bool NeedsDebugStepCheck(Value* value, TokenPosition position);
|
| Fragment DebugStepCheck(TokenPosition position);
|
|
|
| - dart::RawFunction* LookupMethodByMember(CanonicalName* target,
|
| + dart::RawFunction* LookupMethodByMember(intptr_t target,
|
| const dart::String& method_name);
|
|
|
| LocalVariable* MakeTemporary();
|
|
|