swiftlang/swift

[SR-4716] Better diagnostics for multifile executable without a main.swift file

Open

#47,293 创建于 2017年4月27日

在 GitHub 查看
 (5 评论) (0 反应) (0 负责人)Swift (69,989 star) (10,719 fork)batch import
compilerdiagnostics qualitygood first issueimprovementlegacy driver

描述

Previous ID SR-4716
Radar None
Original Reporter @huonw
Type Improvement
Status In Progress
Resolution
Votes 0
Component/s Compiler
Labels Improvement, DiagnosticsQoI, Driver, StarterBug
Assignee None
Priority Medium

md5: 107a386ff1ef4614f95e66bc776c43f4

Issue Description:

$ touch file1.swift file2.swift
$ swiftc file1.swift file2.swift
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)

The problem here is neither file is called main.swift, so the top-level-code `main` function doesn't get emitted. The compiler should check the file names and emit an error rather than going all the way through compilation to hit the link error.

贡献者指南