1 // Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
12 use ast::{Item, ItemFn};
14 pub enum EntryPointType {
19 OtherMain, // Not an entry point, but some other function named main
22 // Beware, this is duplicated in librustc/middle/entry.rs, make sure to keep
24 pub fn entry_point_type(item: &Item, depth: usize) -> EntryPointType {
27 if attr::contains_name(&item.attrs, "start") {
29 } else if attr::contains_name(&item.attrs, "main") {
30 EntryPointType::MainAttr
31 } else if item.ident.name.as_str() == "main" {
33 // This is a top-level function so can be 'main'
34 EntryPointType::MainNamed
36 EntryPointType::OtherMain
42 _ => EntryPointType::None,