swiftlang/swift

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

開放

#47,293 建立於 2017年4月27日

 (5 則留言) (0 個反應) (0 位負責人)Swift (10,719 個分叉)batch import
compilerdiagnostics qualitygood first issueimprovementlegacy driver

倉庫指標

星標
 (69,989 顆星)
PR 合併指標
 (平均合併 8天 17小時) (30 天內合併 510 個 PR)

描述

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.

貢獻者指南