swiftlang/swift

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

Open

#47,293 opened on 2017年4月27日

GitHub で見る
 (5 comments) (0 reactions) (0 assignees)Swift (10,719 forks)batch import
compilerdiagnostics qualitygood first issueimprovementlegacy driver

Repository metrics

Stars
 (69,989 stars)
PR merge metrics
 (平均マージ 8d 17h) (30d で 510 merged PRs)

説明

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.

コントリビューターガイド