library test;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:35:7: Warning: Must explicitly return a value from a non-void function.
//       return;
//       ^
//
// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:65:7: Warning: Must explicitly return a value from a non-void function.
//       return;
//       ^
//
import self as self;
import "dart:core" as core;

static method main() → dynamic {
  () →* core::Null? a = () → core::Null? {};
  () →* core::Null? b = () → core::Null? {
    return;
  };
  () →* core::Null? c = () → core::Null? {
    return null;
  };
  () →* core::int* d = () → core::int* {
    return 0;
  };
  (core::bool*) →* core::Null? e = (core::bool* b) → core::Null? {
    if(b) {
      return;
    }
    else {
      return;
    }
  };
  (core::bool*) →* core::Null? f = (core::bool* b) → core::Null? {
    if(b) {
      return;
    }
    else {
      return null;
    }
  };
  (core::bool*) →* core::int* g = (core::bool* b) → core::int* {
    if(b) {
      return null;
    }
    else {
      return 0;
    }
  };
  (core::bool*) →* core::Null? h = (core::bool* b) → core::Null? {
    if(b) {
      return null;
    }
    else {
      return;
    }
  };
  (core::bool*) →* core::Null? i = (core::bool* b) → core::Null? {
    if(b) {
      return null;
    }
    else {
      return null;
    }
  };
  (core::bool*) →* core::int* j = (core::bool* b) → core::int* {
    if(b) {
      return null;
    }
    else {
      return 0;
    }
  };
  (core::bool*) →* core::int* k = (core::bool* b) → core::int* {
    if(b) {
      return 0;
    }
    else {
      return null;
    }
  };
  (core::bool*) →* core::int* l = (core::bool* b) → core::int* {
    if(b) {
      return 0;
    }
    else {
      return null;
    }
  };
  (core::bool*) →* core::int* m = (core::bool* b) → core::int* {
    if(b) {
      return 0;
    }
    else {
      return 0;
    }
  };
}
