339 bool is_abstract () const { return flags().is_abstract(); }
340 bool is_strict () const { return flags().is_strict(); }
341
342 // Other flags
343 bool is_empty_method() const;
344 bool is_vanilla_constructor() const;
345 bool is_final_method() const { return is_final() || holder()->is_final(); }
346 bool is_default_method() const { return !is_abstract() && !is_private() &&
347 holder()->is_interface(); }
348 bool is_overpass () const { check_is_loaded(); return _is_overpass; }
349 bool has_loops () const;
350 bool has_jsrs () const;
351 bool is_getter () const;
352 bool is_setter () const;
353 bool is_accessor () const;
354 bool is_initializer () const;
355 bool can_be_statically_bound() const { return _can_be_statically_bound; }
356 bool has_reserved_stack_access() const { return _has_reserved_stack_access; }
357 bool is_boxing_method() const;
358 bool is_unboxing_method() const;
359 bool is_object_initializer() const;
360
361 bool can_be_statically_bound(ciInstanceKlass* context) const;
362
363 // Replay data methods
364 void dump_name_as_ascii(outputStream* st);
365 void dump_replay_data(outputStream* st);
366
367 // Print the bytecodes of this method.
368 void print_codes_on(outputStream* st);
369 void print_codes() {
370 print_codes_on(tty);
371 }
372 void print_codes_on(int from, int to, outputStream* st);
373
374 // Print the name of this method in various incarnations.
375 void print_name(outputStream* st = tty);
376 void print_short_name(outputStream* st = tty);
377
378 static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
|
339 bool is_abstract () const { return flags().is_abstract(); }
340 bool is_strict () const { return flags().is_strict(); }
341
342 // Other flags
343 bool is_empty_method() const;
344 bool is_vanilla_constructor() const;
345 bool is_final_method() const { return is_final() || holder()->is_final(); }
346 bool is_default_method() const { return !is_abstract() && !is_private() &&
347 holder()->is_interface(); }
348 bool is_overpass () const { check_is_loaded(); return _is_overpass; }
349 bool has_loops () const;
350 bool has_jsrs () const;
351 bool is_getter () const;
352 bool is_setter () const;
353 bool is_accessor () const;
354 bool is_initializer () const;
355 bool can_be_statically_bound() const { return _can_be_statically_bound; }
356 bool has_reserved_stack_access() const { return _has_reserved_stack_access; }
357 bool is_boxing_method() const;
358 bool is_unboxing_method() const;
359 bool is_vector_method() const;
360 bool is_object_initializer() const;
361
362 bool can_be_statically_bound(ciInstanceKlass* context) const;
363
364 // Replay data methods
365 void dump_name_as_ascii(outputStream* st);
366 void dump_replay_data(outputStream* st);
367
368 // Print the bytecodes of this method.
369 void print_codes_on(outputStream* st);
370 void print_codes() {
371 print_codes_on(tty);
372 }
373 void print_codes_on(int from, int to, outputStream* st);
374
375 // Print the name of this method in various incarnations.
376 void print_name(outputStream* st = tty);
377 void print_short_name(outputStream* st = tty);
378
379 static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
|